|
|
|
| Суть:
есть все URL загружаемого текста сайта нужно поменять, по типу:
было:
1) <a href=http://domen.ru/index.php?param1=1> ...
2) <img src=/img/1.jpg>
а нужно
1) <a href=http://mydomen.ru/?path=http://domen.ru/index.php?param1=1> ...
2) <img src=http://mydomen.ru/?path=http://domen.ru/img/1.jpg>
Обращаю внимание на то что урл может начинаться с одинарной или двойной кавычки, а также быть не полной.
Как вам задачка? | |
|
|
|
|
|
|
|
для: STEVER
(15.07.2007 в 13:49)
| | можно просто сделать вот так:
$text=str_replace('http://','http://mydomen.ru/?path=http://',$text);
$text=str_replace('/img/','http://mydomen.ru/?path=http://domen.ru/img/',$text);
|
Или если регулярным выражением:
$text = eregi_replace("((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)", " <a href=\"http://mydomen.ru/?path=\\0\">text</a>", $text);
|
| |
|
|
|
|
|
|
|
для: demon666
(15.07.2007 в 22:22)
| | в replace нет учета того что ссылка может начинаться не с http, тоже самое к рисункам. | |
|
|
|
|
|
|
|
для: STEVER
(15.07.2007 в 13:49)
| | Объявляю конкурс на лучший(ну и правильный соответственно) вариант решения данной задачи.
Приз 100 WMR. | |
|
|
|
|
|
|
|
для: STEVER
(16.07.2007 в 14:47)
| | Другое дело :D
<?php
$text = 'text...';
function repl($regs) {
$regs[2] = trim($regs[2], "'\"");
if (substr($regs[2], 0, 7) !== 'http://')
$regs[2] = 'http://domen.ru/'.ltrim($regs[2], '/');
return $regs[1].'"http://mydomen.ru/?path='.$regs[2].'"';
}
echo preg_replace_callback("#(<a[^>]+?href=|<img[^>]+?src=)((['\"])?(?(3)[^\\3]+|[^\s>]+)(?(3)\\3))#", "repl", $text);
?>
|
Лучше не придумаешь)) | |
|
|
|
|
|
|
|
для: kasmanaft
(16.07.2007 в 15:29)
| | Да, выглядит очень сильно.
Сейчас проверю работоспособность. | |
|
|
|
|
|
|
|
для: STEVER
(15.07.2007 в 13:49)
| | STEVER, оставил координату в инфе)) | |
|
|
|
|
|
|
|
для: kasmanaft
(18.07.2007 в 10:39)
| | появись пожалуйста в асе | |
|
|
|