我是否可以详细解释如何使用php替换当前attr的标签?
我阅读了手册和一些参考资料
How to use php preg_replace to replace HTML tags
对于我能理解的简单命令,但对于preg_replace上的搜索命令,如~, $1, /n,
等字母,我根本不理解......
如果我想替换
<script src="core.js"></script>
进入
<temp src="library/js/core.js"></temp>
如何实现preg_replace?
非常感谢你的建议。
答案 0 :(得分:1)
对HTML使用正则表达式几乎绝不是一个好主意。考虑DOM,然后是:
foreach($dom->getElementsByTagName('script') as $script) {
$temp = $dom->createElement('temp');
/*
* create src attribute, append it to $temp and copy value from $script
* I leave that up to you.
*/
$script->parentNode->replaceChild($temp, $script);
}
答案 1 :(得分:1)
您需要了解正则表达式,this site是一个有用的资源;
preg_replace的一个简单示例可能是这样的 - 它可以改进,但希望能给你这个想法......
<?php
$string = '<script src="core.js"></script>';
$pattern = '/<script src\s?=\s?['|"](.*)['|"]><\/script>/i';
$replace = ' <temp src="library/js/$1"></temp>';
$result = echo preg_replace($pattern, $replace, $string);
?>
您需要了解反向引用,以便使用字符串的匹配位来创建新的引用。简而言之,您可以使用$ replace标记中包含的$ 1标记稍后检索包含在括号中的模式部分。您可以根据需要多次反向引用。 您可以在正在处理正则表达式here时对其进行测试,希望这会有所帮助。