Object Preg Replace on video对象代码-仅适用于第一个实例

Object Preg Replace on video对象代码-仅适用于第一个实例,object,video,embed,preg-replace,dimensions,Object,Video,Embed,Preg Replace,Dimensions,有谁能帮我解释一下为什么下面的代码只对目标代码中的第一个宽度/高度实例有效。我需要替换使用“height:xxx;width:xxx”的样式,然后还需要替换实际嵌入的height=“xxx”和width=“xxx” 以下是preg替换: $vid_object = preg_replace('~((width)\s?[=:]\s?[\'"]?)[0-9]+~i','${1}600',$vid_object); $vid_object = preg_replace('~((height)\s?[

有谁能帮我解释一下为什么下面的代码只对目标代码中的第一个宽度/高度实例有效。我需要替换使用“height:xxx;width:xxx”的样式,然后还需要替换实际嵌入的height=“xxx”和width=“xxx”

以下是preg替换:

$vid_object = preg_replace('~((width)\s?[=:]\s?[\'"]?)[0-9]+~i','${1}600',$vid_object);

$vid_object = preg_replace('~((height)\s?[=:]\s?[\'"]?)[0-9]+~i','${1}364',$vid_object); 
以下是视频输出:

<object style="height: 364px; width: 600px"><param name="movie" value="http://www.youtube.com/v/UF06-2Q0-G0?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/UF06-2Q0-G0?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></object>

我认为这与代码“${1}600”的替换部分有关,或者结果仅限于第一个实例

非常感谢您的帮助。当regex不是我的专长时,我浪费了太多时间打猎。 谢谢 尼古拉斯试试看

$vid_object=preg_replace('/(width[\s:=\'"]+)\d+/i','${1}600',$vid_object);
$vid_object=preg_replace('/(height[\s:=\'"]+)\d+/i','${1}364',$vid_object);
稍微宽一点

当我在你提供的代码上运行时,我得到

<object style="height: 364px; width: 600px"><param name="movie" value="http://www.youtube.com/v/UF06-2Q0-G0?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/UF06-2Q0-G0?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="600" height="364"></object>


正如Shad所说,这确实是一个关于魔法引号的问题。我只是在$\u POST数据上使用了条带标记。

我希望如此,但没有成功。这也适用于第一对高度/宽度,但不适用于第二对。谢谢你试了一下。我不认为我的php代码有什么奇怪的地方,但也许这是可能的。@nicopablo-hmmm。。我用你提供的问题代码工作了~这可能是编码问题吗?这很奇怪。我没有我的消毒功能,所以我看不出还有什么不同的编码方式。因此,它肯定会改变这两个值。样式(“h:w”)和嵌入(“h”,“w”)?是的-它们在“magic_quotes_gpc on”上。这是好还是坏?我总是对此感到困惑;)糟糕!哈哈,这很可能是在嵌入代码中添加斜杠,这会破坏regexp匹配!我想那就是罪魁祸首您可以将斜杠添加到regexp中,或者关闭魔引号(我建议使用后者)