php 浏览 html DOM 回调节点纯文本内容
php surf along html DOM callbacking node plain text contents
场景:
我需要对 HTML 标签内包含的纯文本应用 php 函数,并显示结果,同时保持原始标签(及其原始属性)。
可视化:
拿这个:
<p>Some text here pointing to the <a href="#">moon</a> and that's it</p>
Return 这个:
<p>
phpFunction('Some text here pointing to the ')
<a href="#">phpFunction('moon')</a>
phpFunction(' and that\'s it')
</p>
我该怎么做:
使用 PHP html 解析器(而不是使用正则表达式)并遍历每个标签,将回调应用于节点文本内容。
问题:
例如,如果我在 <p>
标签内有一个 <a>
标签,则父 <p>
标签的文本内容将由两个不同的纯文本部分组成, php 回调应该单独考虑。
问题:
我应该如何干净利落地处理这个问题?
谢谢你的时间,祝一切顺利。
最后,我决定使用正则表达式而不是包含外部库。
为了简单起见[=24=]:
$expectedOutput = preg_replace_callback(
'/>(.*)</U',
function ($withstuff) {
return '>'.doStuff($withStuff).' <';
},
$fromInput
);
这将查找 >
和 <
之间的所有内容,这确实是我要查找的内容。
当然欢迎任何 suggestion/comment。
和平。
场景:
我需要对 HTML 标签内包含的纯文本应用 php 函数,并显示结果,同时保持原始标签(及其原始属性)。
可视化:
拿这个:
<p>Some text here pointing to the <a href="#">moon</a> and that's it</p>
Return 这个:
<p>
phpFunction('Some text here pointing to the ')
<a href="#">phpFunction('moon')</a>
phpFunction(' and that\'s it')
</p>
我该怎么做:
使用 PHP html 解析器(而不是使用正则表达式)并遍历每个标签,将回调应用于节点文本内容。
问题:
例如,如果我在 <p>
标签内有一个 <a>
标签,则父 <p>
标签的文本内容将由两个不同的纯文本部分组成, php 回调应该单独考虑。
问题:
我应该如何干净利落地处理这个问题?
谢谢你的时间,祝一切顺利。
最后,我决定使用正则表达式而不是包含外部库。
为了简单起见[=24=]:
$expectedOutput = preg_replace_callback(
'/>(.*)</U',
function ($withstuff) {
return '>'.doStuff($withStuff).' <';
},
$fromInput
);
这将查找 >
和 <
之间的所有内容,这确实是我要查找的内容。
当然欢迎任何 suggestion/comment。
和平。