0

我有小的 preg_replace 问题。我需要调整 iframe 代码输出的大小,所以我使用 preg_replace,正则表达式似乎工作正常,但结果与输入相同,没有变化。这里我使用的代码:

$video_code = preg_replace( '/width="(.*?)"/', 'width="'.$width.'"',  $video_code );
$video_code = preg_replace( '/height="(.*?)"/', 'height="'.$height.'"',  $video_code );

此 iframe$video_code包含:

<iframe class='sproutvideo-player' type='text/html' src='http://videos.sproutvideo.com/embed/189bd8b4191ee1c390/d0dc5859e1d409ed?type=hd&regularColors0=666565&regularColors1=595756&hoverColors0=ed2409&hoverColors1=d1390f&highlightColors1=c9c3c9&noBigPlay=true' width='768' height='432' frameborder='0'></iframe>

知道为什么会这样吗?

谢谢

乔治

4

3 回答 3

1

试试这个:

$video_code = preg_replace ('/(width=[\'"])(.*?)([\'"])/', '$1620$3',  $video_code);

$video_code = preg_replace ('/(height=[\'"])(.*?)([\'"])/', '$1' . $height . '$3',  $video_code);

转义了一些字符,您将替换 之间的所有内容(),因此替换模式中的文本height=是不必要的。

于 2012-05-25T13:53:56.823 回答
1

我使用了你的代码,对我来说效果很好。(做了一些小改动,但不多)

这是我使用的代码: http: //codepad.viper-7.com/fafGYW

希望这可以帮助。

于 2012-05-25T13:54:57.760 回答
1
$video_code = preg_replace('/width=[\'"][^\'"]+[\'"]/', 'width="'.$width.'"', $video_code);
$video_code = preg_replace('/height=[\'"][^\'"]+[\'"]/', 'height="'.$height.'"', $video_code);
于 2012-05-25T14:11:50.590 回答