PHP - 将NAME替换为CLASS并删除onclick属性

时间:2013-09-18 12:13:51

标签: php

我有一个字符串:

   $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。

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用:

preg_replace('/onclick=".*"/', '', $str);

但是你应该研究一下DOM解析器,因为上面可能会在某些时候中断。

答案 1 :(得分:1)

一个简单的解决方案是:

$str = preg_replace('/onclick="([^"]+)"/', ' ', $str);

但是如果onclick引号中有一些引号,它就会失败(即使它们已经用\来转义)。