|
|
|
| Вот пробелма, нужно заменить все href=" на href="http://site.ru/ , но при этом не трогать href="http://
Вот ,пытался зделать
function prefix_replacer($string)
{
global $site;
if(substr($string[1],0,7) == 'http://')
{return $string[0];}
else{return 'href="http://'.$site['link'].'/'.$string[1];}
}
$file = preg_replace_callback('|href="(.*?)|iU','prefix_replacer',$file);
|
нужно сделать что бы заменяло href=",href=',src=",scr='
пробовал сделать типа
|href=\("\|\'\)(.*?)|iU
неполучаеться, подскажите
----
зы, регулярные выражения , не мое :D | |
|
|
|
|
|
|
|
для: Morgan
(31.08.2009 в 01:42)
| | придётся в строку замены вставлять так-же кавычку из совпадения (или совсем не трогать кавычки ) если они могут быть разными
$file=<<<TXT
href="/txt.txt"
href="javascript:history.back(1)"
HREF="http://txt.txt"
HREF=''
xsrc='php.php'
SRC='htm.htm'
TXT
;
echo $file = preg_replace(
'#\b(?:href|src)=["\'](?=(?!http://)[^"\'])#i',
'$0http://site.ru/',
$file);
|
| |
|
|
|
|
|
|
|
для: heed
(31.08.2009 в 10:00)
| | а (?= для чего? | |
|
|
|
|
автор: heed (OM) (31.08.2009 в 10:50) |
|
|
для: ride
(31.08.2009 в 10:17)
| | просто подумал что неплохо было-бы хотябы не трогать пустые аттрибуты
(ато и так много чего лишнего попадает ,))
но можно и оставить только (?!http://) | |
|
|
|
|
автор: heed (OM) (31.08.2009 в 10:56) |
|
|
для: ride
(31.08.2009 в 10:17)
| | Кстати да ,) с таким-же успехом будет работать и (?!http://|["\']) | |
|
|
|
|
автор: heed (..) (31.08.2009 в 11:17) |
|
|
для: heed (OM)
(31.08.2009 в 10:56)
| | и забыл сказать что
(?!["\'])(?!http://)
тоже неплохой вариант | |
|
|
|
|
|
|
|
для: heed (..)
(31.08.2009 в 11:17)
| | (?!["\']) можно тоже убрать;) | |
|
|
|
|
|
|
|
для: heed
(31.08.2009 в 10:00)
| | спасиб, работает | |
|
|
|
|
|
|
|
для: heed
(31.08.2009 в 10:00)
| | а что нужно указать, чтобы заменялись так же href=/txt.txt (без кавычек) или вот такое вот href = /txt.txt ?
update: для замены href = /txt.txt - разобрался :)
но а как указать, что после = нет кавычек ?
update2: с href=/txt.txt тоже разобрался - спасибо за внимание )))))) | |
|
|
|
|
|
|
|
для: naxa
(01.09.2009 в 21:05)
| | здесь вопрос обсуждался почти только в тех рамках , в которых он был задан :)
href = /txt.txt ? с такой постановкой вопроса преобразуется в http://site.ru//txt.txt
что как-бы не совсем правильная ссылка, хоть и работающая,
, для необязательности достаточно только добавить квантификатор "?" ("оператор" повторения ноль или один , есть или нет) ,всмысле [\'\"]? | |
|
|
|