Задать вопрос
Slash-Zn
@Slash-Zn

Какое должно быть регулярное выражение для поиска URL?

Здравствуйте.
URL могут быть разные, например:
- 8bit/forum/category_70/
- acer/blog/category_904/page_67/
- kiwidition/photo/category_128/page_32/
- edc/poll/category_51/
URL много, мне надо отловить именно с "category_XXX" и обвернуть их в BBcode. Проверяю, есть ли в тексте ссылки с category, так:
// Категория
		if (preg_match('~(?<!=)' . $this->path . '[0-9a-zA-Z_-\/]+\/category_[0-9]+\/~is', $value))
		{
			$value = $this->category($value, $thing);
		}

По идеи, если сценарий находит нужные ссылки, то меняет их так:
$value = preg_replace('~(?<!=)' . $this->path . '[0-9a-zA-Z_-\/]+\/category_' . $id . '\/~is', '[url=' . trim($url) . ']' . trim($title) . '[/url]', $value);

Код не работает, не первый, ни второй. Видимо, я составил неправильное регулярное выражение.

Помогите, пожалуйста, с выражениями для обнаружения ссылок и их замены.
Спасибо.
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
condor-bird
@condor-bird
Возможно примерно так:

$text = "- 8bit/forum/category_70/
- acer/blog/category_904/page_67/
- kiwidition/photo/category_128/page_32/
- edc/poll/category_51/";

$text = preg_replace('/category_\d+/', '[url=$0]$0[/url]', $text);

echo $text;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы