Программирование > PHP
Сортировка после preg_match_all
brainkiller:
Да вовсе не божественно: кабы не подавление ошибок перед оператором замены подстроки, Вас бы нотисами засыпало. :) Говорю же, причёсывать и причёсывать.
Смотрю, у Вас пробел вместо конца строки — надо полагать, пробелами разделены ссылки на тэги? А после последней ссылки пробел есть, или она не попадёт в $matches?
Сделайте print_r($tags) и посмотрите, что там: возможно регулярку снова переделать придётся.
Moe:
brainkiller
Нет, пробела в шаблоне нет, почему-то автоматом при посте здесь на форуме там оказывается пробел. При echo $onetag; теги выводятся впритык друг к другу, следовательно, насколько я понимаю, пробела между
Moe:
А при print_r ($matches); совсем запутано:
Array
(
)
Array
(
)
Array
(
[0] => Array
(
[0] =><a href=\'link1\'>Сюжет — Тег1</a>
[1] =>
[2] =><a href=\'link1\'>Сюжет — Тег1</a>
)
)
Array (
[0] => Array
(
[0] =><a href=\'link3\'>Сюжет — Тег3</a>
[1] =>
[2] =><a href=\'link3\'>Сюжет — Тег3</a>
...
brainkiller:
--- Цитировать ---А в моем случае:
--- Конец цитаты ---
Ну так это в корне меняет дело! Я из Вашей реплики не понял, признаться, что там каждый тэг в отдельном элементе.
Исправить это просто при помощи implode(), но лучше всё же
$tags = array(
"<a href=\'link1\'>Сюжет — Тег1</a>",
"<a href=\'link2\'>Источник — Тег2</a>",
"<a href=\'link3\'>Сюжет — Тег3</a>",
"<a href=\'link4\'>Текст — Тег4</a>",
"<a href=\'link5\'>Источник — Тег5</a>"
);
$str1 = "<h4>Текст</h4>"; $str2 = "<h4>Источник</h4>"; $str3 = "<h4>Сюжет</h4>";
$pat1 = \'Текст — \'; $pat2 = \'Источник — \'; $pat3 = \'Сюжет — \';
foreach($tags as $tag) {
if (strpos($tag, $pat1)) {
$str1 .= str_replace($pat1, \'\', $tag)." ";
}
if (strpos($tag, $pat2)) {
$str2 .= str_replace($pat2, \'\', $tag)." ";
}
if (strpos($tag, $pat3)) {
$str3 .= str_replace($pat3, \'\', $tag)." ";
}
}
echo $str1, $str2, $str3;
…и никаких регулярных выражений!
[OFF]А вопросы надо задавать максимально конкретно![/OFF]
Moe:
brainkiller
Теперь все работает должным образом, еще раз большое спасибо!
[OFF]Я настоящий профан в этом деле, но на будущее постараюсь учесть все нюансы и буду формулировать вопрос корректнее :) [/OFF]
Навигация
Перейти к полной версии