|
| |
|
|
| |
для: zlordon
(14.06.2006 в 13:34)
| | |
<?
print "<html>\n<body>\n<form>\n";
$i=0; //счётчик вхождений подстроки $ts
$tt = "- Привет :-) Как дела? :-) Ты дома? :-) А я на Луне :-) Ау!!! Что молчишь? :-)";
$ts=":-)"; //подстрока для поиска
print "Оригинал: ".$tt."<br>"; //оригинальная строка
while ($i<3) //чтоб меняло только 3 раза
{
$i++;//увеличиваем
if (strpos($tt,$ts)) //если есть подстрока в нужной нам строке
{
$tt=substr($tt,0,strpos($tt,$ts)).[b]"img"[/b].substr($tt,strpos($tt,$ts)+3,strlen($tt)-strpos($tt,$ts)); //собственно замена
}
//print "$tt<br>"; //вывод после каждой замены (для проверки)
}
print "Получили: ".$tt; //вот и полученная строка
print "</form>\n</body>\n</html>";
?>
|
Вот наваял примерчик. Посмотри. Если я тебя правильно понял, то должно работать.
PS img замени на ту строку, на которую будешь менять.
PPS Если обрабатывать разные смайлы, то код немного усложнится. | |
| |
|
|
| |
|
|
| |
для: zlordon
(14.06.2006 в 13:32)
| | | А не многовато для WAP сайта "Несколько сотен тысяч сообщений"? =)
Попробуй сделать как сказал Trianon, может получится. | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.06.2006 в 11:55)
| | | 5-го увы нет. Буду пробовать иные варианты. Спасибо. | |
| |
|
|
| |
|
|
| |
для: komex
(14.06.2006 в 11:51)
| | | Что-то вроде сайта знакомств. Точнее он самый. Несколько тысяч посетителей. Несколько сотен тысяч сообщений. Забодаюсь править и банить ))) А делать меньше по размеру... Ну в общем тоже не вариант. А на счет не серьезно то, что некторые будут в текстовом варианте... Ну это же Вап. В нем все еще много ограничений, так что это терпимо :) На экране выдается по 4 сообщения, так что думаю если смайлы будут только в последнем или, то это только порадует пользователей. Плюс еще трафик экономить. Так что. Бу думать :) | |
| |
|
|
| |
|
|
| |
для: zlordon
(14.06.2006 в 01:02)
| | | В php 5.0 и выше количество замен str_replace можно ограничить.
Можно также найти 4-е вхождение <img в строку и выполнить обратную замену.
Немного дольше, но проблему решит. | |
| |
|
|
| |
|
|
| |
для: zlordon
(14.06.2006 в 01:02)
| | | А ты сделай эти смайлики небольшого размера.
Просто по-моему получится ерунда, если 3 смайдика появятся, а остальные нет.
Ты куда хочешь вставить эти смайлы, в форум?
Может лучше тогда просто модерировать и тех, кто злоупотребляет картинками просто банить? | |
| |
|
|
| |
|
|
| |
для: komex
(13.06.2006 в 19:47)
| | | У меня WAP. Если скажем, например, в тексте сообщения будет порядка 10 различных смайлов... страница просто не прогрузится. Будет тяжела по килобайтам. потому надо это как-то предусмотреть. | |
| |
|
|
| |
|
|
| |
для: zlordon
(13.06.2006 в 19:20)
| | | А зачем тебе именно первых 3? Заменяй все, которые есть! =)
А вообще подумать надо. Но по-моему лучше сделать как я написал, и ничего не усложнять. | |
| |
|
|
| |
|
|
| |
для: zlordon
(13.06.2006 в 00:25)
| | | Эх как я не старался... но все же видимо проблему описал недостаточно прозрачно. Попробую еще раз.
Есть текст:
- Привет :-) Как дела? :-) Ты дома? :-) А я на Луне :-) Ау!!! Что молчишь? :-)
Так вот. Из всех смайлов мне нужно заменить первые скажем три. А последние оставить в TXT виде. Прошу заметить!, все смайлы в данном примере одинаковые, но так же могут быть различными и каждому смайлу соответствует отдельный GIF, но в тексте должно быть не более 3-х замен:
- Привет <img...> Как дела? <img...> Ты дома? <img...> А я на Луне :-) Ау!!! Что молчишь? :-)
В общем в моих сообщениях должно появляться не более определенного числа замен на картинки. | |
| |
|
|
| |
|
|
| |
для: safe_mod
(13.06.2006 в 07:42)
| | | По-моему лучше поместить все доступные смайлики в один массив, а названия картинок поместить в другой. Например:
<?
$str = "Some text =)";//Текст, в котором будет производиться замена
$from = array("=)", "=(");//Эти смайлы будут заменены на картинки
$to = array("happy.gif", "sad.gif");//Названия картинок
$end = str_replace($from, "<img src='<путь к картинкам>/".$to."'>", $str);
echo $end; //Теперь в переменной $end будет "Some text <img src='img/happy.gif'>"
?>
|
| |
| |
|
|
|