我有一个字符串:
$str = 'title="favorite" name="fav_1" onclick="return ..."'
我想将name
替换为class
和条带onclick
属性。
我尝试了什么?:
$str = 'title="favorite" name="fav_12" onclick="return.."';
$replace = str_replace('name', 'class', $str);
哼哼..好吧。你有什么问题?
如果我使用str_replace
,那么我需要重复此步骤两次,首先将name
替换为class
,将第二个条带onclick
替换为空格。
重复代码不是问题,但str_replace
不起作用如果我不知道onclick="..."
内的内容。
因此,请建议如何将名称替换为类,并在单行代码中删除onclick。
答案 0 :(得分:2)
最简单的方法是使用:
preg_replace('/onclick=".*"/', '', $str);
但是你应该研究一下DOM解析器,因为上面可能会在某些时候中断。
答案 1 :(得分:1)
一个简单的解决方案是:
$str = preg_replace('/onclick="([^"]+)"/', ' ', $str);
但是如果onclick引号中有一些引号,它就会失败(即使它们已经用\来转义)。