1

ユーザーが別のサイトで作成された iframe ウィジェットのコードに入力するウィジェットがあります。他のサイトから生成された iframe コードに含まれる内容にはいくつかのバリエーションがあるため、ウィジェットを識別する 6 桁を除くすべてを取り除き、数字を挿入した iframe コードをエコー バックします。

これが機能しない理由がわかりません…私が使用しているコードは次のとおりです。

<?php

$widget_id = $vars['entity']->widget_id;

if ($widget_id) {

    $widget_id = preg_replace('<iframe src=(.*?)/widgets/(\d+)(.*?)</iframe>', '$2', $widget_id);

    echo '<iframe src="http://website.com/widgets/'.$widget_id.'/player_universal" width="300" height="250"></iframe>';

}

else {
    echo "Enter the widget short code";
}
4

1 に答える 1

0

これはあなたのために働くはずです

$widget_id = preg_replace('/\<iframe src=(.*?)\/widgets\/(\d+)(.*?)\<\/iframe\>/', '$2', $widget_id);

正規表現の前後の区切り文字に注意して
ください / reg-exp / i 修飾子 / reg-exp /i を使用して、大文字と小文字を区別しないようにすることもできます

また、特殊な正規表現文字もすべてエスケープする必要があります (リストについては preg_quote() を参照してください)。


http://www.php.net/manual/en/function.preg-replace.php http://www.php.net/manual/en/reference.pcre.pattern.modifiers.phpを参照してください。

使用できる文字は ps / だけではありません。@ と | を見たことがあります。それも

于 2013-04-30T16:17:20.127 に答える