检查标签&;使用PHP获取标记内部的值
我一直很困惑。这是我的问题,我有这样一个文本:检查标签&;使用PHP获取标记内部的值,php,text,Php,Text,我一直很困惑。这是我的问题,我有这样一个文本: <ORGANIZATION>Head of Pekalongan Regency</ORGANIZATION>, Dra. Hj.. Siti Qomariyah , MA and her staff were greeted by <ORGANIZATION>Rector of IPB</ORGANIZATION> Prof. Dr. Ir. H. Herry Suhardiyanto , M.Sc
<ORGANIZATION>Head of Pekalongan Regency</ORGANIZATION>, Dra. Hj.. Siti Qomariyah , MA and her staff were greeted by <ORGANIZATION>Rector of IPB</ORGANIZATION> Prof. Dr. Ir. H. Herry Suhardiyanto , M.Sc. and <ORGANIZATION>officials of IPB</ORGANIZATION> in the guest room.
Dra佩卡隆安摄政区负责人。Hj。。马西蒂·库马里亚和她的员工受到IPB校长Ir博士的欢迎。H.Herry Suhardiyanto,理学硕士。和IPB的官员在客房。
我正在尝试使用我的代码获取
标记内的值:
function get_text_between_tags($string, $tagname) {
$pattern = "/<$tagname ?.*>(.*)<\/$tagname>/";
preg_match($pattern, $string, $matches);
if(!empty($matches[1]))
return $matches[1];
}
函数在标记($string,$tagname)之间获取文本{
$pattern=“/(.*)/”;
预匹配($pattern,$string,$matches);
如果(!empty($matches[1]))
返回$matches[1];
}
但当有3个标记时,此代码仅从最后一个标记(IPB的官员
)检索一个值
现在,我不想修改这段代码,以便在不重复的情况下获得标记中的所有值。所以请帮忙,提前谢谢D您是否尝试了
strip\u tags()
功能
<?php
$s = "<ORGANIZATION>Head of Pekalongan Regency</ORGANIZATION>, Dra. Hj.. Siti Qomariyah , MA and her staff were greeted by <ORGANIZATION>Rector of IPB</ORGANIZATION> Prof. Dr. Ir. H. Herry Suhardiyanto , M.Sc. and <ORGANIZATION>officials of IPB</ORGANIZATION> in the guest room.";
$r = strip_tags($s);
var_dump($r);
?>
preg_match
将只返回第一个匹配,如果出现以下情况,当前代码将失败:
- 标签不以相同的方式大写
- 标记的内容位于多行上
- 同一行上有多个标记
function get_text_between_tags($string, $tagname) {
$pattern = "/<$tagname\b[^>]*>(.*?)<\/$tagname>/is";
preg_match_all($pattern, $string, $matches);
if(!empty($matches[1]))
return $matches[1];
return array();
}
function get_text_between_tags($string, $tagname) {
$dom = new DOMDocument();
$dom->loadHTML($string);
$tags = $dom->getElementsByTagName($tagname);
$out = array();
$length = $tags->length;
for( $i=0; $i<$length; $i++) $out[] = $tags->item($i)->nodeValue;
return $out;
}
@马修格雷夫斯:我不懂那篇文章(我的英语不好)。还有希望吗?为什么我否决了投票:(我试过了,但仍然不起作用。它返回了一个空数组。)对不起,之前我试过第二个代码。第一个代码是工作。谢谢师父。:)