| |
|
|
| | Подскажите, как в тексте удалить определенную конструкцию. Например, после обработки текста функцией strip_tags(); остается содержимое такого плана:
P { margin:0; }
.chat { font-weight:bold; font-style: italic; }
.user { margin-left:1em; margin-top:1em; font-weight:bold; color:darkblue; font-size:1.3em;}
.text { margin-left:2em; font-weight:bold; font-size:1.5em;}
.message { margin-left:2em; font-weight:bold; font-size:1.1em; color:red;}
.nick { font-weight:bold; }
.chatname { font-weight:bold; color:white; background-color:orange; font-size:2em;}
td { font-weight:bold; color:white; background-color:orange; font-size:2em;}
.melody { display:none; }
function music(){ var buttons = document.all.tags('BUTTON'); if ( buttons != null && buttons.length > 0 )
{ buttons[ 0 ].click(); } }
|
как его удалять? | |
| |
|
|
| |
|
|
| |
для: loneliness
(14.01.2007 в 14:18)
| | |
$text = preg_replace('|<style.*>.*</style>|Usi', '', $text);
$text = preg_replace('|<script.*>.*</script>|Usi', '', $text);
|
| |
| |
|
|
| |
|
|
| |
для: Sergey89
(14.01.2007 в 14:28)
| | | Благодарю, все как надо получилось. | |
| |
|
|
| |
|
|
| |
для: loneliness
(14.01.2007 в 14:18)
| | | Дополню свой пред. код:
<?php
header("Content-type: text/plain");
function get_content($url, $width = 450)
{
$buffer = file_get_contents($url);
$buffer = wordwrap($buffer, $width, "\n");
$buffer = preg_replace('|<style[^>]*?>.*?</style>|si', '', $buffer);
$buffer = preg_replace('|<script[^>]*?>.*?</script>|si', '', $buffer);
$buffer = strip_tags($buffer);
while(strpos($buffer, " ") !== false)
{
$buffer = str_replace(" ", " ", $buffer);
}
while(strpos($buffer, "\r\n\r\n") !== false)
{
$buffer = str_replace("\r\n\r\n", "\r\n", $buffer);
}
return trim($buffer);
}
echo(get_content('http://www.beeonline.ru/demo/chat?chat=mms'));
?>
|
| |
| |
|
|
| |
|
|
| |
для: Unkind
(14.01.2007 в 14:45)
| | | Еще такой ньюанс: когда используем wordwrap(); то делит по границе слова. А как сделать, чтобы делило по содержанию.
Поясню- есть посты от пользователей, и совсем нежелательно, чтобы они разбивались на части. Все посты начинаются со времени написания
например:
14:49:30 Бабай(гость) Красноярск Бабай пришлите картинки<ems:br>14:42:23 ОТКРОВЕНИЕ Ушел из чата:
|
как сделать, чтобы перенос строки вставлялся перед ближайшим постом после 450 знаков? | |
| |
|
|
| |
|
|
| |
для: Loneliness
(14.01.2007 в 15:02)
| | | Хм...Там же после каждого поста переводы строк, зачем это? | |
| |
|
|
| |
|
|
| |
для: Unkind
(14.01.2007 в 15:13)
| | | Переводы строк да не совсем те. Смысл такой- реализую трансляцию чата, которая будет доступна по смс запросу. Каждая строка приходит отдельным смс. Например если вывожу текст вида:
Пост1<ems:br>Пост2<ems:br>Пост3 \r\n Пост4<ems:br>Пост5<ems:br>Пост6
|
то при запросе получу два отдельных смс-сообщения:
смс-1
смс-2
Потому и нужно, чтобы сам пост не делился на части, которые будут получены в отдельных смс, ибо тогда сложно будет разобраться в полученных смс- какая часть откуда.
Вот код, который сейчас дорабатываю:
<?php
header("Content-Type: text/plain");
$trans = 'http://www.beeonline.ru/demo/chat?chat=mms';
$contents = file_get_contents($trans);
$contents = preg_replace('|<style.*>.*</style>|Usi', '', $contents);
$contents = preg_replace('|<script.*>.*</script>|Usi', '', $contents);
$contents = strip_tags($contents);
$contents = str_replace("\r\n", '<ems:br><ems:br>', $contents);
$contents = str_replace("\n", '<ems:br><ems:br>', $contents);
$contents = wordwrap($contents,450,"\r\n"); // Вот здесь и нужно что-то сделать, чтобы вставляло переводы строк не разрывая пост.
echo $contents;
?>
|
Если можно, подскажите еще, как реализовать чтобы любое количество идущих подряд <ems:br><ems:br><ems:br><ems:br>... заменялось на два: <ems:br><ems:br> по всему тексту. | |
| |
|
|
| |
|
|
| |
для: Loneliness
(14.01.2007 в 15:51)
| | | Замените
$contents = str_replace("\r\n", '<ems:br><ems:br>', $contents);
$contents = str_replace("\n", '<ems:br><ems:br>', $contents);
на
$contents = str_replace("\r\n", "<ems:br><ems:br>\r\n", $contents);
$contents = str_replace("\n", "<ems:br><ems:br>\n", $contents); | |
| |
|
|
| |
|
|
| |
для: Unkind
(14.01.2007 в 15:59)
| | | Хм... Тогда оно мне каждый пост будет отдельным смс отправлять, а это ни к чему...
Нужно, чтобы каждое отдельное смс содержало около 450 символов, и не рвало посты.
php-код, который я выше привел, сейчас работает почти как требуется. Нужно только доработать два упомянутых момента- использовать какую-то альтернативу wordwrap(); чтобы посты не рвало, и разобраться с лишними <ems:br> идущими подряд(где-то потексту их получается пять-шесть подряд, где-то три... то есть количество непостоянно), заменив их по всему тексту на:
<ems:br><ems:br> | |
| |
|
|
| |
|
|
| |
для: Loneliness
(14.01.2007 в 16:09)
| | | С <ems:br> разобрался
<?php
header("Content-Type: text/plain");
$trans = 'http://www.beeonline.ru/demo/chat?chat=mms';
$contents = file_get_contents($trans);
$contents = preg_replace('|<style.*>.*</style>|Usi', '', $contents);
$contents = preg_replace('|<script.*>.*</script>|Usi', '', $contents);
$contents = strip_tags($contents);
$contents = str_replace("\r\n", '<ems:br><ems:br>', $contents);
$contents = str_replace("\n", '<ems:br><ems:br>', $contents);
$contents = str_replace("<ems:br><ems:br><ems:br><ems:br><ems:br><ems:br><ems:br>", '<ems:br><ems:br>', $contents);
$contents = str_replace("<ems:br><ems:br><ems:br><ems:br><ems:br><ems:br>", '<ems:br><ems:br>', $contents);
$contents = str_replace("<ems:br><ems:br><ems:br><ems:br><ems:br>", '<ems:br><ems:br>', $contents);
$contents = str_replace("<ems:br><ems:br><ems:br><ems:br>", '<ems:br><ems:br>', $contents);
$contents = str_replace("<ems:br><ems:br><ems:br>", '<ems:br><ems:br>', $contents);
$contents = wordwrap($contents,450,"\r\n");
echo $contents;
?>
|
нужно только сделать, чтобы посты не рвало. | |
| |
|
|