error2k 2 Опубликовано: 18 августа 2007 Рассказать Опубликовано: 18 августа 2007 foreach ($xml->content as $content) { $xml->content[$i]['title'] = strip_tags($xml->content[$i]['title']); $xml->content[$i]['title'] = trim($xml->content[$i]['title']); if ($value['tmax'] AND strlen($xml->content[$i]['title']) > $value['tmax']) $xml->content[$i]['title'] = substr ($xml->content[$i]['title'],0 , $value['tmax'])." ..."; // $xml->content[$i]['description'] = strip_tags($xml->content[$i]['description'],"<br>"); // $xml->content[$i]['description'] = str_replace("<br>", " ", str_replace("<br />", " ", $xml->content[$i]['description'] ) ); $xml->content[$i]['description'] = trim($xml->content[$i]['description']); if ($value['dmax'] AND strlen($xml->content[$i]['description']) > $value['dmax']) { $xml->content[$i]['description'] = substr ($xml->content[$i]['description'],0 , $value['dmax']); if (($value['dmax'] = strpos($xml->content[$i]['description'], ' ', $value['dmax'] - 10))) $xml->content[$i]['description'] = substr ($xml->content[$i]['description'],0 , $value['dmax']); $xml->content[$i]['description'] .= " ..."; } $i++; } Вот фрагмент кода модуля rssinform.php, входящего в поставку DLE (две строки в нём я закомментировал сам). Убиение <br> мне надо было отключить т.к. цитаты с башорга сбивались. Вопрос № 1.. зачем так жестоко его уничтожать? Сначала strip_tags, потом вложенный str_replace? В целом код здесь достаточно очевидный даже для такого ламера как я .. Но вот после строчки обрезания текста новости до максимальной длины: $xml->content[$i]['description'] = substr ($xml->content[$i]['description'],0 , $value['dmax']); следующая строка делает нечно загадочное и необъяснимое.. if (($value['dmax'] = strpos($xml->content[$i]['description'], ' ', $value['dmax'] - 10))) $xml->content[$i]['description'] = substr ($xml->content[$i]['description'],0 , $value['dmax']); Вопрос № 2.. что она проверяет... что символ после последнего символа строки пробел? И потом опять обрезает только что обрезанную строку..? Прошу прощения, если подобные вопросы здесь задавать не принято и я придираюсь к мелочам Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 18 августа 2007 Рассказать Опубликовано: 18 августа 2007 Вопрос № 1.. зачем так жестоко его уничтожать? Сначала strip_tags, потом вложенный str_replace? В целом код здесь достаточно очевидный даже для такого ламера как я .. а логически подумать нельзя? этот код разделяет то что в оригинале разделено переносом строк, например новость: пункт один пункт два с использованием оригинального кода будет выглядеть как: пункт один пункт два после вашей правки будет выглядеть как пункт одинпункт дваследующая строка делает нечно загадочное и необъяснимое.. эта строчка нужна чтобы необрезать слово наполовину, например тестовое сообщ.... Хотя в принципе новая версия уже содержит другой код, более правильный и качественный. Цитата Ссылка на сообщение Поделиться на других сайтах
error2k 2 Опубликовано: 19 августа 2007 Рассказать Опубликовано: 19 августа 2007 (изменено) Автор После моей правки всё выглядит отлично <br> дают новую строку, как и должно быть. (($value['dmax'] = strpos($xml->content[$i]['description'], ' ', $value['dmax'] - 10))) = - это присваивание вроде бы? Или у меня уже совсем крыша протекла Зачем так сложно-то блин Изменено 19 августа 2007 пользователем error2k Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 19 августа 2007 Рассказать Опубликовано: 19 августа 2007 После моей правки всё выглядит отлично <br> дают новую строку, как и должно быть. RSS информер не должен использовать стороннего форматирования, иначе если в тексте будет: пункт 1 пункт 2 то у вас будет пустота при установке ограничения символов, надеюсь логику поняли= - это присваивание вроде бы? Или у меня уже совсем крыша протекла это присванивание, и ничего сложного в этом нет Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.