система хэштегов в стиле фейсбук, ошибка preg_replace

Я проверил учебник, основанный на системе хэштегов facebook, после вставки этого кода я заметил, что в функции preg_replace произошла ошибка, из-за которой ссылки можно нажимать.

<?php

function convert_clickable_links($message) {
$parsedMessage = preg_replace(array('/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»""'']))/', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#([a-z0-9_]+)/i'), array('<a href="$1" target="_blank">$1</a>', '$1<a href="">@$2</a>', '$1<a href="index.php?hashtag=$2">#$2</a>'), $message);
return $parsedMessage;
}
$message = '#test #test #test this is a hashtag test';
echo convert_clickable_links($message);
?>

по какой-то причине в Dreamweaver я получаю синтаксическую ошибку, и когда я загружаю код, я получаю ноль сообщений, потому что функция не работает. Я не могу понять это вообще. Интересно, может ли кто-нибудь помочь.

1

Решение

Это эти

<>?«»""'']

который должен быть изменен на <>?«»“”‘’]

полная (фиксированная) строка:

$parsedMessage = preg_replace(array('/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))/', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#([a-z0-9_]+)/i'), array('<a href="$1" target="_blank">$1</a>', '$1<a href="">@$2</a>', '$1<a href="index.php?hashtag=$2">#$2</a>'), $message);

имеющий Отчет об ошибках на бросил бы

Ошибка разбора: синтаксическая ошибка, неожиданная »])) / » (T_CONSTANT_ENCAPSED_STRING), ожидание ‘)’ в /index.php в строке 4


HTML источник:

<a href="index.php?hashtag=test">#test</a> <a href="index.php?hashtag=test">#test</a> <a href="index.php?hashtag=test">#test</a> this is a hashtag test

OP:

это было решено путем экранирования символов, которые вы изолировали — ,<>?«»""\'\']


Избавившись от одинарных кавычек, решил проблему.

,<>?«»""\'\']
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]