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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Замена [URL] итп.
 
 автор: 1999   (14.12.2005 в 00:30)   письмо автору
 
 

Подскажите, где взять код для замены всех этих тэгов в форумах на нормальные html-тэги.
Я вот написал, но мне не особо нравится, может есть получше?


function url_replace($a)
{
  $start_pos=0;
  $link_num=0;
  $url1=0;
  $url2=0;
  $url3=0;
  while($pos1 !== false)
  {
    $pos1 = strpos($a,"[URL='",$start_pos);

    if($pos1 !== false)
    {
      $url1++;
      $start_pos = $pos1+1;

      $pos2_old = $pos2;
      $pos2 = strpos($a,"']",$pos1+5);
      if($pos2 === false || $pos2 == $pos2_old)
      {
        break;
      }
      $url2++;

      $pos3_old = $pos3;
      $pos3 = strpos($a,"[/URL]",$pos2+1);
      if($pos3 === false || $pos3 == $pos3_old)
      {
        break;
      }
      $url3++;

      $link[$link_num]["url"] = substr($a,$pos1+6,$pos2-$pos1-6);
      $link[$link_num]["desc"] = substr($a,$pos2+2,$pos3-$pos2-2);
      $link[$link_num]["step1"] = $pos1;
      $link[$link_num]["step2"] = $pos3+6;
      $link_num++;
    }
  }

  if($url1 == $url2 && $url1 == $url3 && $url1 != 0)
  {
    $a_done = substr($a,0,$link[0]["step1"]);
    for($i=0;$i<count($link);$i++)
    {
      $needed = "<a target='_blank' href='".$link[$i]["url"]."'>".$link[$i]["desc"]."</a>";
      $a_done .= $needed;
      if($i<count($link)-1)
      {
        $a_done .= substr($a,$link[$i]["step2"],$link[$i+1]["step1"]-$link[$i]["step2"]);
      }
      else
      {
        $a_done .= substr($a,$link[$i]["step2"],strlen($a)-$link[$i]["step2"]);
      }
    }
  }
  else
  {
    $a_done = $a;
  }

  return $a_done;
}

   
 
 автор: cheops   (14.12.2005 в 13:57)   письмо автору
 
   для: 1999   (14.12.2005 в 00:30)
 

Нужно порыться в форуме Регулярные выражения. Вот несколько ссылок по теме
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=8358
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=156
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=3251
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=5408
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=6967

PS Если ссылки не подойдут - задайте можно будет попробовать разработать вариант для вас.

   
 
 автор: 1999   (14.12.2005 в 20:53)   письмо автору
 
   для: cheops   (14.12.2005 в 13:57)
 

спасибо=)

   
Rambler's Top100
вверх

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