PHP で XML を読み書きするためのテクニックは数多くあります。この記事では、XML を読み取る 3 つの方法 (DOM ライブラリの使用、SAX パーサーの使用、および正規表現の使用) を説明します。 DOM および PHP テキスト テンプレートを使用した XML の作成についても説明します。 これは段落です これは段落です
PHP で Extensible Markup Language (XML) を読み書きするのは、少し怖いように思えるかもしれません。実際、XML とそれに関連するすべてのテクノロジは恐ろしいものですが、PHP での XML の読み取りと書き込みは、必ずしも恐ろしい作業である必要はありません。まず、XML とは何なのか、XML を使って何ができるのかについて少し学ぶ必要があります。次に、PHP で XML を読み書きする方法を学ぶ必要があります。これを行う方法はたくさんあります。
この記事では、XML について簡単に説明した後、PHP を使用して XML を読み書きする方法について説明します。
XMLとは何ですか?
XML はデータ保存形式です。どのようなデータが保存されるかは定義されず、データの形式も定義されません。 XML は単にタグとそのタグの属性を定義するだけです。整形式の XML マークアップは次のようになります:
<名前>ジャック・ヘリントン</名前>
この
テキストのない XML マークアップは次のようになります:
<パワーアップ/>
XML で何かを記述する方法は複数あります。たとえば、このタグは前のタグと同じ出力を形成します:
<パワーアップ></パワーアップ>
XML タグに属性を追加することもできます。たとえば、この
<name first="ジャック" last="ヘリントン" />
XML を使用して特殊文字をエンコードすることもできます。たとえば、& 記号は次のようにエンコードできます:
&
タグと属性を含む XML ファイルは、例のようにフォーマットされていれば 整形式 であり、タグが対称的であり、文字が正しくエンコードされていることを意味します。リスト 1 は、整形式の XML の例です。
リスト1. XML書籍リストの例
リーリー
リスト 1 の XML には書籍のリストが含まれています。親の
XML ドキュメントは、そのマークアップ構造とコンテンツが外部スキーマ ファイルによって検証される場合、正しいものとなります。スキーマ ファイルはさまざまな形式で指定できます。この記事で必要なのは、整形式の XML だけです。
XML は Hypertext Markup Language (HTML) によく似ていると思うなら、その通りです。 XML と HTML は両方ともマークアップベースの言語であり、多くの類似点があります。ただし、XML ドキュメントは整形式の HTML である場合もありますが、すべての HTML ドキュメントが整形式の XML であるわけではないことに注意することが重要です。改行タグ (br) は、XML と HTML の違いを示す良い例です。この改行タグは整形式の HTML ですが、整形式の XML ではありません:
改行あり</p>
この改行タグは、整形式の XML および HTML です:
改行あり</p>
HTML を整形式 XML として記述したい場合は、W3C 委員会の Extensible Hypertext Markup Language (XHTML) 標準に従ってください (「参考文献」を参照)。最新のブラウザはすべて XHTML をレンダリングできます。さらに、XML ツールを使用すると、XHTML を読み取ってドキュメント内のデータを検索できます。これは、HTML を解析するよりもはるかに簡単です。
DOM ライブラリを使用して XML を読み取る
整形式の XML ファイルを読み取る最も簡単な方法は、一部の PHP インストールにコンパイルされたドキュメント オブジェクト モデル (DOM) ライブラリを使用することです。 DOM ライブラリは、XML ドキュメント全体をメモリに読み取り、それをノード ツリーとして表します (図 1 を参照)。
図 1. 書籍 XML の XML DOM ツリー
ツリーの最上位にある Books ノードには 2 つの book 子タグがあります。各書籍には、著者、出版社、タイトルなどの複数のノードがあります。 author、publisher、title ノードにはそれぞれ、テキストを含むテキスト子ノードがあります。
書籍 XML ファイルを読み取り、DOM を使用してコンテンツを表示するコードをリスト 2 に示します。
リスト 2. DOM を使用して書籍 XML を読み取る
リーリー
脚本首先创建一个 new DOMdocument 对象,用 load 方法把图书 XML 装入这个对象。之后,脚本用 getElementsByName 方法得到指定名称下的所有元素的列表。
在 book 节点的循环中,脚本用 getElementsByName 方法获得 author、publisher 和 title 标记的 nodeValue。nodeValue 是节点中的文本。脚本然后显示这些值。
可以在命令行上像这样运行 PHP 脚本:
% php e1.php
PHP Hacks - Jack Herrington - OReilly
Podcasting Hacks - Jack Herrington - OReilly
%
可以看到,每个图书块输出一行。这是一个良好的开始。但是,如果不能访问 XML DOM 库该怎么办?
用 SAX 解析器读取 XML
读取 XML 的另一种方法是使用 XML Simple API(SAX)解析器。PHP 的大多数安装都包含 SAX 解析器。SAX 解析器运行在回调模型上。每次打开或关闭一个标记时,或者每次解析器看到文本时,就用节点或文本的信息回调用户定义的函数。
SAX 解析器的优点是,它是真正轻量级的。解析器不会在内存中长期保持内容,所以可以用于非常巨大的文件。缺点是编写 SAX 解析器回调是件非常麻烦的事。清单 3 显示了使用 SAX 读取图书 XML 文件并显示内容的代码。
清单 3. 用 SAX 解析器读取图书 XML
<?php
$g_books = array();
$g_elem = null;
function startElement( $parser, $name, $attrs )
{
global $g_books, $g_elem;
if ( $name == BOOK ) $g_books []= array();
$g_elem = $name;
}
function endElement( $parser, $name )
{
global $g_elem;
$g_elem = null;
}
function textData( $parser, $text )
{
global $g_books, $g_elem;
if ( $g_elem == AUTHOR ||
$g_elem == PUBLISHER ||
$g_elem == TITLE )
{
$g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text;
}
}
$parser = xml_parser_create();
xml_set_element_handler( $parser, "startElement", "endElement" );
xml_set_character_data_handler( $parser, "textData" );
$f = fopen( books.xml, r );
while( $data = fread( $f, 4096 ) )
{
xml_parse( $parser, $data );
}
xml_parser_free( $parser );
foreach( $g_books as $book )
{
echo $book[TITLE]." - ".$book[AUTHOR]." - ";
echo $book[PUBLISHER]."
";
}
?>
脚本首先设置 g_books 数组,它在内存中容纳所有图书和图书信息,g_elem 变量保存脚本目前正在处理的

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
