フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

[PHP] ソースを整形して出力する参考

without comments

使い道

このサンプルではXML内にあるimg src属性とlink属性“だけ”を取得し、ベタなhtmlタグとしてインクルードするパターン

preg_match_all関数で取得したい値を正規表現『\”(.*)\”』でごっそりゲットし、変数に渡す。
(つまり必要な要素だけ、preg_match_allと対応する変数を列挙するばよい。)

ソース

取得するXML

┗ 置き場所の例:/var/www/○○○○/html/user_data/○○○○/packages/default/xml/img.xml

<?xml version="1.0" encoding="UTF-8"?>
<data>
<img src="○○1○○.jpg" link="http://○○1○○.jp/aaaa/" />
<img src="○○2○○.jpg" link="http://○○2○○.jp/bbbb/" />
<img src="○○3○○.jpg" link="http://○○3○○.jp/cccc/" />
<img src="○○4○○.jpg" link="http://○○4○○.jp/dddd/" />
<img src="○○5○○.gif" link="http://○○5○○.jp/eeee/" />
</data>

処理するPHP

$file = file_get_contents("/var/www/○○○○/html/user_data/○○○○/packages/default/xml/img.xml");
preg_match_all("<img src=\"(.*)\">",	$file, $img, PREG_SET_ORDER);
preg_match_all("< link=\"(.*)\" >", $file, $url, PREG_SET_ORDER);
$cnt = 0;
foreach ($img as $elm)
{
	list($item, $dummy) = explode('" ', $elm[1]);
	list($urls, $dummy) = explode('" ', $url[$cnt][1]);
	echo "<a href=\"" . $urls . "\"><img src=\"" . $item . "\" /></a>\n";
	$cnt++;
}

処理出力されるHTML

<a href="http://○○1○○.jp/aaaa/"><img src="○○1○○.jpg" /></a>
<a href="http://○○2○○.jp/bbbb/"><img src="○○2○○.jpg" /></a>
<a href="http://○○3○○.jp/cccc/"><img src="○○3○○.jpg" /></a>
<a href="http://○○4○○.jp/dddd/"><img src="○○4○○.jpg" /></a>
<a href="http://○○5○○.jp/eeee/"><img src="○○5○○.gif" /></a>