Я пытаюсь получить все совпадения, но получаю только одно
Вот моя строка
$html = '<p> This is my Home Page.</p><p><span style="line-height: 1.42857;">{{ type="slider" }} </span></p><p> </p>';
Если вы видите, что строка содержит {{ type="slider" }}
, теперь, если я напишу эту строку только один раз, я получу ожидаемый результат, но если я напишу ее несколько раз в строке html, например {{ type="slider" }}
{{ type="banned" }}
{{ type="testimonial" }}
$html = '<p> This is my Home Page.</p><p><span style="line-height: 1.42857;">{{ type="slider" }} {{ type="banner" }} {{ type="testimonial" }} </span></p><p> </p>';
и попытайтесь получить значения в моей строке {{ type=" ???? " }}
, это показывает странный результат
Я использую этот код ниже.
preg_match_all('/{{ type=\"(.+)\" }}/', $html, $matches, PREG_SET_ORDER);
echo "<pre>";
print_r($matches);
foreach ($matches as $val) {
echo "matched: ". $val[0] . "<br/>";
echo "My Value" . $val[1] . "<br/>";
}
Текущий результат:
Array
(
[0] => Array
(
[0] => {{ type="slider" }} {{ type="banner" }} {{ type="testimonial" }}
[1] => slider" }} {{ type="banner" }} {{ type="testimonial
)
)
matched: {{ type="slider" }} {{ type="banner" }} {{ type="testimonial" }}
My Value : slider" }} {{ type="banner" }} {{ type="testimonial
Я ожидаю результата в массиве со значениями, записанными между {{ type="
и " }}
только с {{ type="slider" }}
я получаю этот результат, который идеален.
Array
(
[0] => Array
(
[0] => {{ type="slider" }}
[1] => slider
)
)
matched: {{ type="slider" }}
My Value : slider
Есть идеи ?
Извините за мой плохой английский.
preg_match_all('/{{ type=\"(.+?)\" }}/mi', $html, $matches, PREG_SET_ORDER);
- person zanderwar   schedule 02.09.2016