2013-06-02 3 views
0

у меня есть этот PHP код:PHP: Wrap ссылки из строки между <a></a> теги

$y = $_POST['message']; 

$pre = htmlspecialchars($y, ENT_QUOTES); 

$msg = str_replace("&lt;br&gt;", "<br>", $pre); 

, который заменяет все преобразованный < бр > «ы (& Лт; б & Гт) обратно к < бр > , И я пытаюсь сделать то же самое (ну, почти) со всеми ссылками, как на форумах. Пример ...

http://www.example.com 

должны быть обернуты вокруг, как это:

<a href="http://www.example.com">http://www.example.com</a> 

, если это проще, я бы, очевидно, предпочитают [URL] [/ URL] метод, также, [IMG] [/ IMG].

Может ли кто-нибудь указать мне в правильном направлении? Я искал здесь несколько часов, и ничто не приспосабливается к моей потребности:/

+0

посмотрите на это: http://stackoverflow.com/questions/4217406/php-add-link-to-a-url-in-a-string – scraaappy

ответ

1

очень простой способ сделать это:

$input = '[URL]xxx[/URL]'; 

$url = explode('[URL]', $input); 
$url = explode('[/URL]', $url[1]); 
$url = '<a href="' . $url[0] . '"/>Link</a>'; 

echo $url; 

Есть, безусловно, лучшие способы сделать это. Возможно, с регулярным выражением или preg_replace.

+0

Удивительный! Спасибо! Работает отлично! И я могу использовать его с изображениями !! Весьма признателен! – MoeSzislak

+0

:) Но никогда не забывайте о безопасности! Вы никогда не знаете, что пользователи будут вводить;) –

0

Обычно это делается с помощью регулярных выражений, в которых вы можете использовать регулярное выражение ссылки google, и вам дается куча примеров и руководств. Однако, если $ _POST ['message'] не является огромной строкой и не содержит много ссылок, вы действительно можете взорваться на [URL], а затем найти [/ URL] в результате массива explode() и вычислить длина ссылки. Оттуда вам просто нужно добавить тэг anchor и substr ссылку, поскольку вы уже знаете длину из исходного элемента массива.

+0

Это не огромная строка, но в любом случае , Я не знаю, как ограничить его небольшим количеством символов (500, ex): S (на стороне PHP, потому что я могу легко проверить его с помощью JavaScript). И я не очень хороший кодер сам, в PHP-дерн, поэтому я возьму пример пота маленького доктора ** Patrick Browers ** сделал :) – MoeSzislak

+0

Это в основном то, что я предложил, но вместо этого написал код: D Это нормально если вы решили сделать это таким образом, но вы должны знать о том, что он крайне неэффективен и не должен использоваться с огромными текстами или множеством запросов. Удачи! : P –

 Смежные вопросы

  • Нет связанных вопросов^_^