|
|
|
| Есть текст
$text = "<http://www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui>";
|
Его нужно преобразовать - все штуки вида <http://link> сделать <a href='http://link'>http://link</a>
Использую ф-ю gm_edit_links($text)
Моя ф-я
function gm_edit_links($text){//редактируем линки из <http://www.xoetrope.com/xui> в обычные
$page = preg_replace_callback("/<http:\/\/(.*)>/si", 'gm_create_link', $text);
return $page;
}
function gm_create_link($matches){
// print_r($matches);
$link = $matches[1];
return "<a href='http://$link'>$link</a>";
}
|
не справляется с задачей - например весь тот текст залазит в одну большущую ссылку
<a href='http://www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui'>www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui</a>
|
Подскажите пожалуйста как поправить :) | |
|
|
|
|
|
|
|
для: kulibko
(28.11.2007 в 22:53)
| | <a href='http://www.xoetrope.com/xui> - это открывающий тег. Во всех ваших функциях вы не режете уже готовые ссылки. Нужно определиться: если в вашем исходном тексте есть реальные теги ссылок, то их можно резать, а можно оставлять. Если оставлять, то ваша функция работать должна. Если резать, то нужно резать предварительно.
Если в исходном тексте тегов ссылок нет, то у вас не верные исходные данные. Должно быть:
<http://www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui'>www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui>
|
Ну и потом, тут не нужен вызов функции. Ну честно:)
preg_replace_all("#<(http://.*?)>#i", "<a href='$$1'>$$1</a>", $text);
|
Не пробовал, но должно работать. | |
|
|
|
|
|
|
|
для: SHAman
(29.11.2007 в 00:41)
| | В PHP просто preg_replace
preg_replace("#<(http://[^>]+)>#i", "<a href='$1'>$1</a>", $text);
|
| |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 08:49)
| | это
preg_replace("#<(http://[^>]+)>#i", "<a href='$1'>$1</a>", $text);
|
текст не изменило | |
|
|
|
|
|
|
|
для: kulibko
(29.11.2007 в 09:36)
| | Что значит текст не изменило?
Разве под Ваш шаблон
<a href='http://link'>http://link</a>
не подходит? | |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 09:43)
| | Идеально подходит, но такое чувство что регуляр неправильный - оно текст полностью прежним оставило.
$text = "<http://www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui>";
preg_replace("#<(http://[^>]+)>#i", "<a href='$1'>$1</a>", $text);
echo $text;
|
И текст каким был, таким и остался. | |
|
|
|
|
|
|
|
для: kulibko
(29.11.2007 в 09:45)
| | А как текст должен измениться, чего то я не понимаю?
По вашему заданию надо было линки изменить
Н-да | |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 10:04)
| | Текст должен был стать таким:
<a href='http://http://www.xoetrope.com/xui'>http://www.xoetrope.com/xui</a> И пошел тут текст, в нем ссылка <a href='http://http://test_me.ru/testing.php'>http://test_me.ru/testing.php</a>, и опять текст, и опять ссылка <a href='http://http://www.xoetrope.com/xui'>http://www.xoetrope.com/xui</a>
|
А он не изменился. | |
|
|
|
|
|
|
|
для: kulibko
(29.11.2007 в 10:15)
| | Ну а так результат такой же как у Шамана
preg_replace("#<(http://[^>]+)>#i", "<a href='$$1'>$$1</a>", $text);
|
| |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 10:34)
| | и так не изменило ничего...
у меня такое чувство что preg_replace не работает... | |
|
|
|
|
|
|
|
для: kulibko
(29.11.2007 в 10:44)
| |
$text1="<http://www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui'>www.xoetrope.com/xui> И пошел тут текст, в нем ссылка <http://test_me.ru/testing.php>, и опять текст, и опять ссылка <http://www.xoetrope.com/xui>";
$text1=preg_replace("#<(http://[^>]+)>#i", "<a href='$$1'>$$1</a>", $text1);
echo $text1;
|
| |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 10:47)
| | Спасибо огромое :)
Вот так
$text1=preg_replace("#<(http://[^>]+)>#i", "<a href='$1'>$1</a>", $text1);
|
корректно все работает | |
|
|
|
|
|
|
|
для: SHAman
(29.11.2007 в 00:41)
| | Спасибо большое :)
В свою ф-ю вместо своего регуляра поставил Ваш и все успешно заработало.
То что вызов ф-ии не нужен поверил :), но при попытке использовать Ваш код вываливается ошибка
Fatal error: Call to undefined function preg_replace_all() | |
|
|
|
|
|
|
|
для: kulibko
(29.11.2007 в 09:34)
| | В PHP нет функции preg_replace_all() | |
|
|
|
|
|
|
|
для: Faraon
(29.11.2007 в 09:36)
| | Угумс. Вот что значит ночью писать...:(
И все-таки человек не понял что я хотел сказать про исхоные данные...:( | |
|
|
|