Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拆分和替换HTML标记元素_Php_Html Parsing - Fatal编程技术网

Php 拆分和替换HTML标记元素

Php 拆分和替换HTML标记元素,php,html-parsing,Php,Html Parsing,我有一个动态标记元素,我需要用PHP替换特定的标记 基本上我只需要标签 将成为: <a target="_blank" title="Visit MarcAira14 on Facebook" href="http://www.facebook.com/MarcAira14" > <img alt="Facebook icon" src="/sites/all/modules/contrib/socialmedia/icons/levelten/gloss

我有一个动态标记元素,我需要用PHP替换特定的标记

基本上我只需要标签

将成为:

<a target="_blank" 
   title="Visit MarcAira14 on Facebook" 
   href="http://www.facebook.com/MarcAira14"
>
  <img alt="Facebook icon" src="/sites/all/modules/contrib/socialmedia/icons/levelten/glossy/48x48/facebook.png">
</a>

我还需要获取title属性中的最后一个字符串(
title=“访问Facebook上的MarcAira14”
),在本例中是
“Facebook”


任何有想法或建议的人都将不胜感激。

这是regex版本。我已经测试过了,它是有效的。text.html是您的源字符串



它搜索“这正是HTML解析器存在的目的。一种方法是使用PHP自己的
DOMDocument

另一种可能更简单的方法是,它是一个很好的文档包装器。(虽然最近一次更新是在2009年5月,但它似乎已经有一段时间没有更新了。)

phpQuery大量借用jQuery,因此如果您熟悉它,可以使用许多已知的概念

对于您的情况,应该是这样的:

$doc=phpQuery::newDocument($yourHtmlRhtmlFragment);
$links=$doc['a[title!='']:has(img)';
foreach($links作为$link)
{
$title=$link->getAttribute('title');
$words=爆炸(“”,$title);
$last_word=结束($words);
pq($link)->empty()->text($last_word);
}
另请参阅


这里讨论了其他用于PHP的HTML解析器:。

对于常规表达式来说似乎是一项很好的任务对于DOMDocument来说似乎是一项很好的任务当只有
<a target="_blank" 
   title="Visit MarcAira14 on Facebook"
   href="http://www.facebook.com/MarcAira14"
>Facebook</a>