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

Форум Регулярные Выражения

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

 

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

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

тема: Как сделать, чтобы слово переведенное в ссылку на поиск однажды не переводилось повторно?
 
 автор: kak   (06.04.2008 в 13:26)   письмо автору
 
 

Подскажи, пожалуйста
Как сделать, чтобы слово переведенное в ссылку на поиск однажды не переводилось повторно?

<?
function repl ($match) {
   return 
'<a href="srchform.php?id_forum=1&name=' urlencode($match[0]) . 
          
'&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=' 
          
urlencode("Поиск") . '">'.$match[0].'</a>';
}
echo 
preg_replace_callback ('/\b\w{3,}\b/''repl'$postbody);

   
 
 автор: Atheist   (06.04.2008 в 13:34)   письмо автору
 
   для: kak   (06.04.2008 в 13:26)
 

Яснее сказать можешь?

   
 
 автор: kak   (06.04.2008 в 14:52)   письмо автору
 
   для: Atheist   (06.04.2008 в 13:34)
 

Могу.

скрипт котрый выше, переводит все слова боле 3 знаков в ссылку на поиск.
вот например в посте будет два или боле одинаковых слова. Нужно, чтобы второй раз это слово не переводилось в ссылку на поиск, а просто прописывалось.
нужно получить Примерно, так: Форум Softtime. Форум PHP, Форум сайта

Одинаковые слова повторно не нужно переводить в ссылку на поиск. Только один раз

   
 
 автор: Atheist   (06.04.2008 в 15:57)   письмо автору
 
   для: kak   (06.04.2008 в 14:52)
 

<?php
function repl ($match) {
   
   static 
$replaced = array();

   if( 
in_array($match[0], $replaced) )
   {
        return 
$match[0];
   }

   
$replaced[] = $match[0];

   return 
'<a href="srchform.php?id_forum=1&name=' urlencode($match[0]) .  
          
'&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=' .  
          
urlencode("Поиск") . '">'.$match[0].'</a>'
}

echo 
preg_replace_callback ('/\b\w{3,}\b/''repl''Форум Softtime. Форум PHP, Форум сайта');
?>

   
 
 автор: kak   (06.04.2008 в 16:05)   письмо автору
 
   для: Atheist   (06.04.2008 в 15:57)
 

Спасибо.
Попробую, чуть позже : )

   
 
 автор: kak   (06.04.2008 в 18:29)   письмо автору
 
   для: Atheist   (06.04.2008 в 15:57)
 

Все, отлично работает, вот только на регистр внимание обращает (Форум, форум) "думает" разные слова.
Можно ли это исправить?

   
 
 автор: Atheist   (06.04.2008 в 18:56)   письмо автору
 
   для: kak   (06.04.2008 в 18:29)
 

Можно привести всё к одному регистру. Например

<?php
   
if( in_array(strtoupper($match[0]), $replaced) ) 
   { 
        return 
$match[0]; 
   } 

   
$replaced[] = strtoupper($match[0]);

   
 
 автор: kak   (06.04.2008 в 19:44)   письмо автору
 
   для: Atheist   (06.04.2008 в 18:56)
 

Спасибо, то что нужно.
Отлично работает.

А вот еще, хочу спросить (чтобы тему новую не заводить)
Можно ли в этом же скрипте сделать так, чтобы слова исключения вписать которые ненужно в ссылки на поиск "превращать"
Например такие слова, как: перед, некто, чтобы, якобы, и т.п.

Или из этого уже не получится?

   
Rambler's Top100
вверх

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