Фидоизврат

Уважаемые гиганты пхп-мысли, ткните носом, пожалуйста, где можно почитать, как сделать такое:
1. Вынуть из фида заголовок последнего поста.
2. Изъять текст последнего поста
3. Ограничить строки первого и второго по ширине или по кол-ву символов.

Странный вопрос. Если Вы владеете php, то без труда сможете это все сделать, если же нет – то и советы не помогут.

Ограничение по кол-ву символов – это понятно. А что такое ограничение по ширине?

Странный вопрос. Если Вы владеете php, то без труда сможете это все сделать, если же нет - то и советы не помогут. 

Ограничение по кол-ву символов - это понятно. А что такое ограничение по ширине?

О! Мой мегавыручатель самолично откликнулся)) спасибо.

Не, я ПХПой не владею, а из аналогов или описаний логикой и научным тыком иногда удачно собираю.
Может про ширину некорректно выразился – просто хочу впаять это в картинку так, чтоб перенос строки осуществлялся.
Собственно, заголовок я уже выдернул, а вот с остальным бяда. И кодировка слетает.

Что касается "советы не помогут" – я же не могу тупо написать "сделайте мне", вроде никто мне тут не обязан.)))
А так может наковыряю что и дельным советом разживусь.

Хытрый какой…
Тогда по порядку. Откуда последний пост выдернуть? Из RSS (его там может не быть целиком), из своего блога или с чужого по ссылке из RSS?

Кодировка – это не беда. Можно сразу указать, можно в фиде посмотреть. А дальше перекодировка (из cp-1251 в utf-8)
$str = mb_convert_encoding($str, "UTF-8", "CP-1251");
или
$str = iconv("CP-1251", "UTF-8", $str);

"перенос строки осуществлялся" – еще непонятней. Броузеры сами строки переносят по дырками промеж слов. Или хочется резать прямо по слову? Не советую, бывают ну очень смешные автоогрызки.

Хытрый какой...
Тогда . Откуда последний пост выдернуть? Из RSS (его там может не быть целиком), из своего блога или с чужого по ссылке из RSS?

Кодировка - это не беда. Можно сразу указать, можно в фиде посмотреть. А дальше перекодировка (из cp-1251 в utf-8)
$str = mb_convert_encoding($str, "UTF-8", "CP-1251");
или
$str = iconv("CP-1251", "UTF-8", $str); 

"перенос строки осуществлялся" - еще непонятней. Броузеры сами строки переносят по дырками промеж слов. Или хочется резать прямо по слову? Не советую, бывают ну очень смешные автоогрызки.

По порядку, так по порядку;)
Это собственно графический информер, посему фид собственный и целиком он и не нужон. Соответственно пост можно и из базы тянуть, но оно для меня не легче.
Про перенос – в рисунке то они не переносят.))

Мало шо хытрый, так ышо и извращенец – картинки из вордпресса делает 😀
Почитайте пока http://forum.maxsite.org/viewtopic.php?pid=16078#p16078
Потом продолжим бэсэду.

Мало шо хытрый, так ышо и извращенец - картинки из вордпресса делает :D
Почитайте пока http://forum.maxsite.org/viewtopic.php?pid=16078#p16078
Потом продолжим бэсэду.

Почитал. Ничего не понял))
Могу кусок кода, от которого ожидается счастье выложить – может он лучше меня скажет о желаниях.

Что нужно? Отдельно стоящим скриптом вынуть последний пост из базы WP?

Что нужно? Отдельно стоящим скриптом вынуть последний пост из базы WP?

Ага, а потом его корректно запхать в картинку.
Тут есть ещё нюанс. В фиде у меня идёт только около 10% постов – их обновления и надо дёргать, а последний из базы, видимо будет запретным.

А каким образом фид фильтрует "базар"? Там что, какие-то приблуды стоят? Просто выдергивание из базы создает гораздо меньшую нагрузку на сервер, чем запрос фида.

А каким образом фид фильтрует "базар"? Там что, какие-то приблуды стоят? Просто выдергивание из базы создает гораздо меньшую нагрузку на сервер, чем запрос фида.

Мне стыдно, но я уже не помню, как это сотворил. Кажется Advanced Category Excluder.

Ну тогда из фида. Вот кусок скрипта, который я использовал для генерации информера о двух заголовках с линками

<?
$rss = fopen("http://******/rss.php",'r');
$i = 0;

while ($line=trim(fgets($rss,4096))) {
   if (preg_match("'<title><!\[CDATA\[(.*) \]\]></title>'", $line, $matches)) $title[$i]=iconv('utf-8','cp1251',$matches[1]);
   if (preg_match("'<link>(.*\.htm)</link>'", $line, $matches))  $link[$i]=$matches[1];
   if (preg_match("'<pubDate>.*(\d\d:\d\d):.*</pubDate>'", $line, $matches)) $pub[$i]=$matches[1];
   if (preg_match("'</item>'", $line, $matches)) $i++;
   if ($i == 2) break;
}

fclose($rss);

for ($i=0;$i<2;$i++) {

    print <<<EOB

<div class="post-o">
<p><span class="rtext">{$pub[$i]}</span>&nbsp;<a class="ilink3" href="{$link[$i]}" target="_blank">{$title[$i]}</a></p>
</div>

EOB;
}

?>

PS Об универсальности речи быть не может, затачивалось под один конкретный фид.

честно говоря, нефтыкаю))

Anonymous
Отправить
Ответ на: