两个链接的“href”属性的相同php标记,输出两个不同的html

时间:2016-08-30 07:13:58

标签: php url

php模板 -

"home-pg-feed-video" => 
    "<div class=\"row home-pg-feed-item pl0 pr0 ml0 mr0\" data-type=\"video\">" .
        "<div class=\"col-lg-4 col-xs-4 pl0\">" .
            "<a href=\"/clinical-dialogue.php?v={{ url }}\"><img src=\"{{ thumb-sm }}\" alt=\"img\"/></a>" .
        "</div>" .
        "<div class=\"col-lg-8 col-xs-8 pr0 \">" .
            "<h4 class=\"mb5\">{{ title }}</h4>" .
            "<a href=\"/clinical-dialogue.php?v={{ url }}\" class=\"watch-link\">Watch the video</a>" .
            "<p>{{ summary }}</p>" .
        "</div>" .
    "</div>"

带有“img”标签的链接正确输出 -

<a href="/clinical-dialogue.php?v=Dirk_Arnold_Patient_Selection_3rd_Line_&amp;_Sequencing_Final_Branded-video.php"><img src="images/vid_thumbs/sm/Dirk_Arnold_Branded.png" alt="img"></a>

但是“观看视频”输出的第二个链接 -

<a href="/clinical-dialogue.php?v={{ url }}" class="watch-link">Watch the video</a>

我正在使用模板的标记

<div class="col-lg-8 col-xs-8 col-lg-feed">
                    <h3 class="feed-name mt0">Featured Clinical Dialogue</h3>
                    <?php
                        for($i = 0; $i < count($featureData); $i++){
                            $item = $featureData[$i];
                            if($item["type"] === "video"){
                                $template = $templates["home-pg-feed-video"];
                                $html = $template;

                                foreach($item as $key => $value){
                                    if($key == "topics") {
                                            $value = implode(", ", $value);
                                        }   
                                        $html = preg_replace("/{{ " . $key . " }}/", $value, $html, 1);
                                }
                                echo $html;
                            }
                        }
                    ?>
                </div>

1 个答案:

答案 0 :(得分:1)

你的preg_replace行中有“1”,它将匹配数量(即“url”)限制为1.使用“-1”没有限制。

所以

$html = preg_replace("/{{ " . $key . " }}/", $value, $html, -1);

或者

$html = preg_replace("/{{ " . $key . " }}/", $value, $html);

但是在你的情况下,不需要正则表达式。使用str_replace,因为它更快:

$html = str_replace("{{ " . $key . " }}", $value, $html);
相关问题