preg_match_all match multiple strings and get the values written in double quotes

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-12 04:32:02

问题


Recently I asked a question regarding preg_match_all with php, and i got the perfect solution as expected but now I have some different scenario

here is my string :

$html = '<p> This is my Home Page.</p><p><span style="line-height: 1.42857;">
        {{ type="slider" pagename="slider-1" }} 
        {{ type="banner"  pagename="banner-1" }} 
        {{ type="testimonial"  pagename="testimonial-1" }}
        </span></p><p> </p>';

My Code :

preg_match_all('/{{ type="(.+?)" }}/', $html, $matches, PREG_SET_ORDER);

echo "<pre>";

print_r($matches);

foreach ($matches as  $val) {

    echo $val[1];
    echo "<br/>";
}
?>

Result i am getting :

Array
(
    [0] => Array
        (
            [0] => {{ type="slider" pagename="slider-1" }}
            [1] => slider" pagename="slider-1
        )

    [1] => Array
        (
            [0] => {{ type="banner"  pagename="banner-1" }}
            [1] => banner"  pagename="banner-1
        )

    [2] => Array
        (
            [0] => {{ type="testimonial"  pagename="testimonial-1" }}
            [1] => testimonial"  pagename="testimonial-1
        )

)
slider" pagename="slider-1
banner"  pagename="banner-1
testimonial"  pagename="testimonial-1

How can i get the values for slider and pagename variable written in {{ and }} in the string ?


回答1:


Here:

/{{ type=\"(.+)\"\s+pagename=\"(.+)\" }}/i

In action: https://regex101.com/r/tX9vD3/1



来源:https://stackoverflow.com/questions/39286071/preg-match-all-match-multiple-strings-and-get-the-values-written-in-double-quote

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!