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

Форум PHP

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

 

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

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

тема: ссылка на поиск
 
 автор: kak   (25.02.2008 в 20:22)   письмо автору
 
 

Подскажите пожалуйста.
Как сделать?

$postbody="регулярные выражения в php"
## каждое слово кроме предлогов перевести в ссылку на поиск

Нужно получить так:

srchform.php?id_forum=1&name=регулярные&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=поиск srchform.php?id_forum=1&name=выражения&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=поиск srchform.php?id_forum=1&name=PHP&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=поиск

   
 
 автор: Max Vasin   (25.02.2008 в 20:52)   письмо автору
 
   для: kak   (25.02.2008 в 20:22)
 

что-то в этом роде пробуй
$postbody='регулярные выражения в php';
$pattern = '/([^\x20-\x2F|^\x3A-\x40|^\x5B-\x60|^\x7B-\x7F|^\s|^\n|^\r|^\f]+)/';
$aaa=array ("в");
$str=strtolower($postbody);
preg_match_all($pattern, $str, $a);
for ($r=0;$r<=count($a)+1;$r++){
    foreach($aaa as $v) {
    if ($a[0][$r]!=$v) echo "<a href=\"srchform.php?id_forum=1&name=".$a[0][$r]."&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=поиск\">".$a[0][$r]."</a><br>";}}


----
Regards, Max Vasin.

   
 
 автор: kasmanaft   (26.02.2008 в 05:58)   письмо автору
 
   для: Max Vasin   (25.02.2008 в 20:52)
 

Зачем preg_match_all() ? Для замены удобнее использовать preg_replace().

<?
$text 
'регулярные выражения в php'
echo 
preg_replace('/\b\w{4,}\b/i''srchform.php?id_forum=1&name=\\0&numberthemes=30...'$text);


PS с \w может не работать из-за неправильно настроенной локали.. можно заменить на что-то вроде [а-яА-ЯёЁ] (может цифры еще, дефис добавить...).

PS2 Max Vasin, а зачем выражение такое нечитаемое?

   
 
 автор: kak   (26.02.2008 в 09:17)   письмо автору
 
   для: kasmanaft   (26.02.2008 в 05:58)
 

Спасибо.
Попробую

   
 
 автор: kak   (26.02.2008 в 09:57)   письмо автору
 
   для: kasmanaft   (26.02.2008 в 05:58)
 

.

   
 
 автор: kak   (27.02.2008 в 12:31)   письмо автору
 
   для: kasmanaft   (26.02.2008 в 05:58)
 

Подскажите пожалуйста, если знаете, как лучше сделать?!
Очень нужно : )

   
 
 автор: kak   (26.02.2008 в 09:16)   письмо автору
 
   для: Max Vasin   (25.02.2008 в 20:52)
 

Спасибо.
Буду пробовать

   
 
 автор: kak   (26.02.2008 в 10:05)   письмо автору
 
   для: Max Vasin   (25.02.2008 в 20:52)
 

>> $postbody='регулярные выражения в php';
$pattern = '/([^\x20-\x2F|^\x3A-\x40|^\x5B-\x60|^\x7B-\x7F|^\s|^\n|^\r|^\f]+)/';
$aaa=array ("в");
$str=strtolower($postbody);
preg_match_all($pattern, $str, $a);
for ($r=0;$r<=count($a)+1;$r++){
foreach($aaa as $v) {
if ($a[0][$r]!=$v) echo "<a href=\"srchform.php?id_forum=1&name=".$a[0][$r]."&numberthemes=30&srchwhere=2&id_forum=1&logic=0&send=поиск\">".$a[0][$r]."</a><br>";}}

В вашем случае все работает, вот только получается так:

регулярные
выражения
php

в виде ссылок.

Буква "в" пропала, регистр в посте изменился, строчная надпись стала столбиком


PS Не пойму на форуме функция [url] [/url] перестала работать? Или это только у меня

   
Rambler's Top100
вверх

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