Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
PHP операции замены
Новая тема
Ответить
цитата
20/09/07 в 15:48
vxod
Подскажите плиз как делать сабж.
Есть строка: слово1, слово слово2, слово3
Нужна строка: <а href=домен/скрипт?id=слово1>слово1</a>, <а href=домен/скрипт?id=слово1>слово слово2</a>, <а href=домен/скрипт?id=слово1>слово3</a>
Так же интересуют преобразования урлов вида
http://домен/
в http%3A%2F%2Fдомен%2F и строк "слово1 слово2 слово3" в "слово1+слово2+слово3"
цитата
20/09/07 в 16:12
Adulter
vxod писал:
Так же интересуют преобразования урлов вида
http://домен/
в http%3A%2F%2Fдомен%2F
http://ua.php.net/manual/en/function.rawurlencode.php
vxod писал:
и строк "слово1 слово2 слово3" в "слово1+слово2+слово3"
http://ua.php.net/manual/en/function.urlencode.php
цитата
20/09/07 в 16:21
Adulter
vxod писал:
Подскажите плиз как делать сабж.
Есть строка: слово1, слово слово2, слово3
Нужна строка: <а href=домен/скрипт?id=слово1>слово1</a>, <а href=домен/скрипт?id=слово1>слово слово2</a>, <а href=домен/скрипт?id=слово1>слово3</a>
Это я бы так сделал. (Но я только учусь)
$strokatvoya = "слово1, слово слово2, слово3";
$array = explode(", ", $strokatvoya); // Получим массив $array[1] = "слово1", $array[2] = "слово слово2" и т.д.
Ну и дальше просто подставить их. Циклом, либо в строку...
цитата
20/09/07 в 17:54
cyberxxx
Обычный str_replace().
цитата
20/09/07 в 17:57
Dantist
vxod писал:
Подскажите плиз как делать сабж.
Есть строка: слово1, слово слово2, слово3
Нужна строка: <а href=домен/скрипт?id=слово1>слово1</a>, <а href=домен/скрипт?id=слово1>слово слово2</a>, <а href=домен/скрипт?id=слово1>слово3</a>
Код:
function ConvertString($St) //$St = "слово1, слово слово2, слово3";
{
$A = explode(", ",$St);
$Res = Array();
foreach ($A as $S)
{
$Res[] = "<A href=домен/скрипт?id=".$A[0].">".$S."</A>";
}
return join(", ",$Res);
}
echo ConvertString("слово1, слово слово2, слово3");
vxod писал:
Так же интересуют преобразования урлов вида
http://домен/
в http%3A%2F%2Fдомен%2F и строк "слово1 слово2 слово3" в "слово1+слово2+слово3"
Код:
$St = urlencode($St);
В общем, должно работать )))
цитата
20/09/07 в 22:52
Formator
Всё намного проще
Код:
echo preg_replace("/((.*?)([,]|$))/","<a href=домен/скрипт?id=$2>$2</a>$3","word1, word2, word3, word4");
А вот то что тебе нужно по всей видимости:
Код:
echo preg_replace("/((.*?)([,]|$))/e","'<a href=домен/скрипт?id='.urlencode('\\2').'>\\2</a>\\3'","long word1, long word2, long word3, long word4");
цитата
23/09/07 в 22:23
vxod
[quote="CJLOG"]Всё намного проще
Код:
echo preg_replace("/((.*?)([,]|$))/","<a href=домен/скрипт?id=$2>$2</a>$3","word1, word2, word3, word4");
выдает текст
<a href=домен/скрипт?id=world1>world1, </a><a href=домен/скрипт?id=>world2, </a> и т.д.
т.е. ид в ссылке прописывает только для первого слова, остальные слова получают ссылки без ид.
цитата
24/09/07 в 00:16
Formator
Ага, чё-то не заметил. Вот, держи оба варианта подправленные:
Код:
echo preg_replace("/(([^ ].*?)([,]|$))/","<a href=домен/скрипт?id=$2>$2</a>$3","word1, word2, word3, word4");
echo "<p></p>";
echo preg_replace("/(([^ ].*?)([,]|$))/e","'<a href=домен/скрипт?id='.urlencode('\\2').'>\\2</a>\\3'","long word1, long word2, long word3, long word4");
цитата
24/09/07 в 00:36
vxod
CJLOG писал:
Ага, чё-то не заметил. Вот, держи оба варианта подправленные:
Код:
echo preg_replace("/(([^ ].*?)([,]|$))/","<a href=домен/скрипт?id=$2>$2</a>$3","word1, word2, word3, word4");
echo "<p></p>";
echo preg_replace("/(([^ ].*?)([,]|$))/e","'<a href=домен/скрипт?id='.urlencode('\\2').'>\\2</a>\\3'","long word1, long word2, long word3, long word4");
спасибо, заработало =) добавил только \" , чтоб фразы из двух слов тоже преобразовывались в ссылку
меня интересовал только первый вариант. про преобразование урла спрашивал для других целей.
а как можно изъебнуться, чтобы менял фразы на ссылки с фразами, начиная с n-ой фразы, а не все подряд?
цитата
24/09/07 в 01:49
Formator
vxod писал:
спасибо, заработало =) добавил только \" , чтоб фразы из двух слов тоже преобразовывались в ссылку
меня интересовал только первый вариант. про преобразование урла спрашивал для других целей.
а как можно изъебнуться, чтобы менял фразы на ссылки с фразами, начиная с n-ой фразы, а не все подряд?
Т.е. в выражении "word1, word2, word3" надо поменять только word2 и word3, если начинать со второй? Если так, то:
Код:
echo join(", ",array_slice($s=explode(",","word1, word2, word3, word4"),0,-count($s)+
СКОЛЬКО_СЛОВ_ВЫРЕЗАТЬ_С_НАЧАЛА
)).preg_replace("/(([^ ].*?)([,]|$))/","<a href=домен/скрипт?id=$2>$2</a>$3",join(", ",array_slice($s,0,
СКОЛЬКО_СЛОВ_ВЫРЕЗАТЬ_С_НАЧАЛА
)));
Новая тема
Ответить
Эта страница в полной версии