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 に答える