Реклама на сайте Advertise with us

PHP операции замены

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 20.10.05
Сообщения: 831
Рейтинг: 626

Ссылка на сообщениеДобавлено: 20/09/07 в 15:48       Ответить с цитатойцитата 

Подскажите плиз как делать сабж.
Есть строка: слово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"

0
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 20/09/07 в 16:12       Ответить с цитатойцитата 

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

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

0
 

grammar nazi

С нами с 23.01.03
Сообщения: 6974
Рейтинг: 2037

Ссылка на сообщениеДобавлено: 20/09/07 в 16:21       Ответить с цитатойцитата 

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" и т.д.

Ну и дальше просто подставить их. Циклом, либо в строку...

Меня как из ушата окатили. Так гадко стало. И обидно.
Пустышка.

3
 

осинизатор

С нами с 10.03.03
Сообщения: 8491
Рейтинг: 819

Ссылка на сообщениеДобавлено: 20/09/07 в 17:54       Ответить с цитатойцитата 

Обычный str_replace().

ушел на завод

0
 

php наше всё :)

С нами с 26.07.04
Сообщения: 814
Рейтинг: 447

Ссылка на сообщениеДобавлено: 20/09/07 в 17:57       Ответить с цитатойцитата 

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);



В общем, должно работать )))

Толковый программист ждет [не]больших заказов (:

3
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 20/09/07 в 22:52       Ответить с цитатойцитата 

Всё намного проще icon_smile.gif

Код:

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");

создай свою партнёрку

3
 



С нами с 20.10.05
Сообщения: 831
Рейтинг: 626

Ссылка на сообщениеДобавлено: 23/09/07 в 22:23       Ответить с цитатойцитата 

[quote="CJLOG"]Всё намного проще icon_smile.gif

Код:

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> и т.д.
т.е. ид в ссылке прописывает только для первого слова, остальные слова получают ссылки без ид.

0
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 24/09/07 в 00:16       Ответить с цитатойцитата 

Ага, чё-то не заметил. Вот, держи оба варианта подправленные:

Код:

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");

создай свою партнёрку

3
 



С нами с 20.10.05
Сообщения: 831
Рейтинг: 626

Ссылка на сообщениеДобавлено: 24/09/07 в 00:36       Ответить с цитатойцитата 

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-ой фразы, а не все подряд?

0
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 24/09/07 в 01:49       Ответить с цитатойцитата 

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,СКОЛЬКО_СЛОВ_ВЫРЕЗАТЬ_С_НАЧАЛА)));


icon_smile.gif

создай свою партнёрку

3
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »