我想从php中删除标签以显示此结果:
在:
1: <span class="n n21" title="Germania"> </span>
2: <a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>
在
1: Germania
2: FC Schalke 04
有什么帮助吗?提前谢谢。
答案 0 :(得分:1)
如果这些是静态字符串,那么正则表达式应该可以正常工作,但是如果你正在浏览网页上的某个网页,我建议使用DOMDocument。
当您将数据作为字符串读取时,这可能是有意义的吗?它不会从字符串数据中删除任何内容 - 只需找到您要查找的元素属性并将其回送回来。
$data='
<span class="n n21" title="Great Britain"> </span>
<span class="n n21" title="Germania"> </span>
<span class="n n21" title="france"> </span>
<a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>
<a href="/team/35?hl=it-IT" title="Porto"><img data-src="http://2015.sofifa.org/15/teams/24/35.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>
<a href="/team/36?hl=it-IT" title="England"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>';
libxml_use_internal_errors( true );
$dom = new DOMDocument('1.0','utf-8');
$dom->validateOnParse=false;
$dom->standalone=true;
$dom->preserveWhiteSpace=true;
$dom->strictErrorChecking=false;
$dom->substituteEntities=false;
$dom->recover=true;
$dom->formatOutput=true;
$dom->loadHTML( $data );
$parse_errs=serialize( libxml_get_last_error() );
libxml_clear_errors();
/* get titles from SPAN elements */
$col=$dom->getElementsByTagName('span');
foreach( $col as $node ) echo $node->getAttribute('title').'<br />';
/* Get titles from A tags */
$col=$dom->getElementsByTagName('a');
foreach( $col as $node ) echo $node->getAttribute('title').'<br />';
$dom=null;
答案 1 :(得分:0)
preg_match()
可以帮到你。
$html = '<span class="n n21" title="Germania"> </span>';
$pattern = '/title="(.+)"/';
preg_match($pattern, $html, $match);
print $match[1];
Regex此处
答案 2 :(得分:0)
这将有助于
preg_replace('#<span.*?\s+title="([^"]+)"> .*?<a\s+.*?title="([^"]+)"><img#sui', "$1\n$2", text);
echo nl2br($text);
答案 3 :(得分:0)
在每个字符串中取标题属性的起始数字和值
$str = '1: <span class="n n21" title="Germania"> </span>
2: <a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>';
$str = preg_replace('/^(\d+:\s).+\stitle=\"([^\"]+)\".+$/m', '\1\2', $str);
echo $ str;
结果
1: Germania
2: FC Schalke 04