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 使其不区分大小写

您还需要转义所有特殊的 reg-exp 字符(请参阅 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 回答