【问题标题】:PHP regex replace with diffrent action for each resultPHP 正则表达式替换每个结果的不同操作
【发布时间】:2017-02-05 14:19:40
【问题描述】:

PHP 中,我试图用包含 ifame 标记的段落标记替换所有 iframe 标记。

换句话说,我试图用带有随机数的<p>标签包围iframe标签。

一切正常,除非 $record 包含多个 iframe 标记,在这种情况下,它会为所有<p> 标签。

这是我的代码:

$x = rand(1, 99);
$replacement = '<p' . $x . '>$1</p' . $x . '><br>';
$record = preg_replace("/(<iframe.*<\/iframe>)/U", $replacement, $record);

我想为

每个 iframe 标记的

标记 例如:

<p1><iframe>sometext</iframe></p1>
<p2><iframe>sometext</iframe></p2>

【问题讨论】:

    标签: php html regex iframe preg-replace


    【解决方案1】:
    $s = <<<'HTML'
    <p1><iframe>sometext1</iframe></p1>
    <p2><iframe>sometext2</iframe></p2>
    HTML;
    
    $re = "/(<iframe[^>]*>.*?<\/iframe>)/U";
    
    echo preg_replace_callback($re, function ($a) {
        $x = rand(1, 99);
        return '<p' . $x . '>'.$a[1].'</p' . $x . '><br>';
    }, $s);
    

    【讨论】:

    • 非常感谢,完美!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2011-02-21
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多