|
|
|
| Подскажите пожалуйста.
Как сделать?
$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=поиск | |
|
|
|
|
|
|
|
для: 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. | |
|
|
|
|
|
|
|
для: 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, а зачем выражение такое нечитаемое? | |
|
|
|
|
|
|
|
для: kasmanaft
(26.02.2008 в 05:58)
| | Спасибо.
Попробую | |
|
|
|
|
|
|
|
для: kasmanaft
(26.02.2008 в 05:58)
| | . | |
|
|
|
|
|
|
|
для: kasmanaft
(26.02.2008 в 05:58)
| | Подскажите пожалуйста, если знаете, как лучше сделать?!
Очень нужно : ) | |
|
|
|
|
|
|
|
для: Max Vasin
(25.02.2008 в 20:52)
| | Спасибо.
Буду пробовать | |
|
|
|
|
|
|
|
для: 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] перестала работать? Или это только у меня | |
|
|
|