0

我有一个字符串:

   $str =  'title="favorite" name="fav_1" onclick="return ..."'

我想替换nametoclass和 stripeonclick属性。

我试过什么?:


    $str = 'title="favorite" name="fav_12" onclick="return.."';

    $replace = str_replace('name', 'class', $str);

嗯。。没关系。你有什么问题 ?


如果我使用str_replace,那么我需要重复此步骤两次,第一次用于替换nameclass,第二个条纹替换onclick为空白空间。

重复代码不是问题,但str_replace如果我不知道里面有什么,那就不行了onclick="..."

因此,请建议我如何将名称替换为类并仅在单行代码中剥离 onclick。

4

2 回答 2

2

最简单的方法是使用:

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

但是您应该查看 DOM 解析器,因为上面的内容可能会在某些时候中断。

于 2013-09-18T12:20:18.190 回答
1

一个简单的解决方案是:

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

但是,如果 onclick 引号内有一些引号,它将失败(即使它们用 \ 转义)。

于 2013-09-18T12:23:05.313 回答