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


PHP - replace NAME to CLASS and strip onclick attribute

我有一个字符串:

   $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到空白。

重复代码不是问题,但如果我不知道里面onclick="..."是什么,str_replace将无法正常工作.

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

最简单的方法是使用:

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

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

一个简单的解决方案是:

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

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