Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблемма с функцией str_replase()

Сообщения:  [1-3] 

 
 автор: mihdan   (27.10.2007 в 23:57)   письмо автору
 
   для: __Юра__   (27.10.2007 в 10:46)
 

parse_url()

   
 
 автор: cheops   (27.10.2007 в 12:08)   письмо автору
 
   для: __Юра__   (27.10.2007 в 10:46)
 

>данный скрипт должен заменять url адреса
заменять на что?

   
 
 автор: __Юра__   (27.10.2007 в 10:46)   письмо автору
 
 

Уже не один час сижу, и не как не могу отладить скрипт,
данный скрипт должен заменять url адреса
вот скрипт

<?
function proxyUrl($path$url)
{
 
$url=str_replace('&amp;','&',$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']) ? '&amp;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');
?>

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования