|
| |
|
|
| |
для: __Юра__
(27.10.2007 в 10:46)
| | | parse_url() | |
| |
|
|
| |
|
|
| |
для: __Юра__
(27.10.2007 в 10:46)
| | | >данный скрипт должен заменять url адреса
заменять на что? | |
| |
|
|
| |
|
|
| | Уже не один час сижу, и не как не могу отладить скрипт,
данный скрипт должен заменять url адреса
вот скрипт
<?
function proxyUrl($path, $url)
{
$url=str_replace('&','&',$url);
if(preg_match('|^\/.*|i',$url))
{
$path=explode('/',$path);
return $path[0].''.$url;
}
elseif(preg_match('|^\.\/.*|i',$url))
{
$dir=explode('/',$path);
$dirNew='';
for($i=0; $dir[$i]; $i++)
{
if(!$dir[$i+1])
break;
$dirNew.=$dir[$i].'/';
}
preg_match_all('|^\.\/(.*)|i',$url, $out);
return $dirNew.''.$out[1][0];
}
elseif(preg_match('|^\.\.\/.*|i',$url))
{
$dir=explode('/',$path);
$dirNew='';
for($i=0; $dir[$i]; $i++)
{
if(!$dir[$i+2])
break;
$dirNew.=$dir[$i].'/';
}
preg_match_all('|^\.\.\/(.*)|i',$url, $out);
return $dirNew.''.$out[1][0];
}
elseif(preg_match('|^http:\/\/.*|i',$url))
{
preg_match_all('|^http://(.*)|i', $url, $out);
return $out[1][0];
}
elseif(preg_match('|\?.*|i',$url))
{
preg_match_all('|^([^\?]*).*|i', $path, $out);
return $out[1][0].''.$url;
}
return FALSE;
}
//Функция заменны url в странице
function text_url($text)
{
$text='
<a href="?ver=html">Новый</a><br/>
<br/><a href="../?ver=html">Сервисы</a><br/>
<a href="/?ver=html">Главная</a><br>
<a href="?ver=html">Новый</a><br/>
<br/><a href="../?ver=html">Сервисы</a><br/>
<a href="/?ver=html">Главная</a>';
//Эта переменая была ведена для отладки
$_GET['u']= 'localhost%2Fservis%2Fgen_mat%2F%3Fver%3Dhtml&a=OPERA';
$url_GET=rawurldecode($_GET['u']);
$url_a=($_GET['a']) ? '&a='.$_GET['a'] : '';
$url=array();
preg_match_all('|src="?\\\'?([^ >"\']+)|is',$text,$out);
$url=$out[1];
preg_match_all('|href="?\\\'?([^ >"\']+)|is',$text,$out);
$url=array_merge($url,$out[1]);
preg_match_all('|action="?\\\'?([^ >"\']+)|is',$text,$out);
$url=array_merge($url,$out[1]);
for($i=0; $url[$i]; $i++)
{
$key=$url[$i];
//'?u='.rawurlencode(proxyUrl($url_GET ,$key)).''.$url_a
//Вывод для отладки
echo $key.' ====== ?u='.proxyUrl($url_GET ,$key).'<br/>';
//Вот тут проблемма
$text=str_replace($key, '?u='.rawurlencode(proxyUrl($url_GET ,$key)).''.$url_a, $text);
}
return $text;
}
echo text_url('ssssss');
?>
|
| |
| |
|
|
|