TOP ▲
itcore TOP プログラムパーツ
uHtmlTagGet タグで囲まれたデータを取得する。入れ子タグには不対応。 | itcore 2018年
PHP
関数
<?php
// タグで囲まれたデータを取得する。入れ子タグには不対応。
function uHtmlTagGet($data, $tag) {
$tag2 = "<$tag>";
$tag3 = "<$tag ";
$tag_data = stristr($data, $tag2);
if (false === $tag_data) $tag_data = stristr($data, $tag3);
if (false === $tag_data) return "";
$tag_data = substr($tag_data, strlen($tag2));
$end = strpos($tag_data, "<"); // 終了タグまたは次のタグが合ったところで終了
if (false === $end) return $tag_data;
$tag_data = substr($tag_data, 0, $end);
return $tag_data;
}
?>
テスト
<?php include "uHtmlTagGet.func"; ?>
<?php
$data = "<h3>url</h3>"; $tag = "h3"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "<h3>url</h3>"; $tag = "h"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "abc<a href>url</a>123"; $tag = "a"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "abc<a href>url</a>123"; $tag = "a2"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "<tr><td>data</td></th>"; $tag = "td"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "<tr><td>data</td></th>"; $tag = "tr"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "<tr><td>data<td>data2"; $tag = "td"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
$data = "<tr><td>data td"; $tag = "td"; $ret = uHtmlTagGet($data, $tag); echo htmlspecialchars("data=$data tag=$tag ret=$ret") . "<br>\n";
?>
実行結果
data=<h3>url</h3> tag=h3 ret=url
data=<h3>url</h3> tag=h ret=
data=abc<a href>url</a>123 tag=a ret=href>url
data=abc<a href>url</a>123 tag=a2 ret=
data=<tr><td>data</td></th> tag=td ret=data
data=<tr><td>data</td></th> tag=tr ret=
data=<tr><td>data<td>data2 tag=td ret=data
data=<tr><td>data td tag=td ret=data td