0

我有这样的输入标签:

<input style="font-size:12px;width:100%" type="text" value="http://www.google.de/ggg">

并想用什么来代替它们。这就是我尝试过的:

$pattern    = '/<input style="font-size:12px;width:100%" type="text" value="(.+?)">/';
        echo preg_replace( $pattern, "", $content )

我没有成功。

我的功能有什么错误?也许是正则表达式?

替换字符串中所有输入标签的函数就可以了。

4

3 回答 3

0

你可能需要一些模式修饰符我假设你有一个文本块所以尝试sU在你的模式之后添加。

于 2013-06-23T14:45:38.227 回答
0

将替换所有input标签,无论它们是否以空格开头。/i忽略大小写并/x忽略正则表达式中的空格,因此其主要目的是更具可读性的正则表达式,

    echo preg_replace("/<\s* input [^>]+ >/xi", "", $content);
于 2013-06-23T14:51:50.343 回答
0

在处理 HTML 时,使用 DOM 对象通常比 regexp 更好。

$content = '<input style="font-size:12px;width:100%" type="text" value="asd"/>' ;

$dom = new DOMDocument ;
$dom->loadHTML($content);

$node = $dom->getElementsByTagName("input")->item(0);
$node->setAttribute("value", "");
echo $dom->saveHTML() ;

这也可以解释为什么:RegEx 匹配除了 XHTML 自包含标签之外的开放标签

于 2013-06-23T14:53:59.103 回答