6 ответ(ов) в теме
garry
На сайте с 04.01.2014
Участник
Тем 113
Сообщения 2185
1
10:08

Приветствую.
Делаю ленту rss для добавления в одну рекомендательную систему, на сайте очень древнем, не wp. Все работает кроме одного пункта.
Я не уверен в правильности действий и получив столько инфы за сутки, голова уже не соображает.

$result = $db->sql_query("SELECT pid, title, hometext, bodytext, date, counter  FROM ".$prefix."_pages ORDER BY pid DESC LIMIT ".$limit."");
	while (list($rpid, $rtitle, $rhometext, $rbodytext, $rdate, $rcounter) = $db->sql_fetchrow($result)) 

		echo "<item>\n"
		."<link>$homeurl/index.php?name=Pages&op=page&pid=$rpid</link>\n"
		."<title>".htmlspecialchars($rtitle)."</title>\n"			
		."<pubDate>".htmlspecialchars(date("D, j M Y H:m:s O", strtotime($rdate)))."</pubDate>\n"
		."<description><![CDATA[".html_entity_decode(bb_decode($rhometext))."]]></description>\n"
	    ."<enclosure url=\"$homeurl/".$rbodytext."\" type=\"image/jpeg\"></enclosure>\n"
		."</item>\n";

}
echo "</channel>\n";
echo "</rss>";

Суть в чем, все работает кроме последней строчки, там должна быть картинка. Но картинка сама в тексте, в переменной $rbodytext
Если начинаю вытягивать регуляркой, то вытягивает из одной статьи и все игнорируя $limit или тупо не работает. Никак не соображу, можно вообще в данной конструкции сделать фильтрацию переменной, оставив только картинки.
Вот это работает, вытаскивает картинку, но как писал выше, не знаю как в эту конструкцию добавить.

preg_match_all('/src=\"(.*?)\"/', $rbodytext, $array);
   foreach ($array[1] as $item1);

Или вообще так нельзя? Буду благодарен за подсказки, хотя может и криво написал, непонятно)

Редакции сообщения
23.01.2020 10:10garryПричина: не указано
23.01.2020 10:12garryПричина: не указано
0
Дружаев Владимир (Otshelnik-Fm)
не в сети 42 минуты
На сайте с 27.01.2013
Модератор
Тем 30
Сообщения 16061
2
10:23

Привет.

Распечатай сюда что в $homeurl и в $rbodytext

1
garry
На сайте с 04.01.2014
Участник
Тем 113
Сообщения 2185
3
10:32

Привет, Владимир.
В $homeurl -

Вы не можете просматривать опубликованные ссылки

$rbodytext - текст статьи

<img src="uploads/26/26-t7oMDVVYTt.jpg" alt="" width="150" height="150" align="left" />Но, так уж частенько получается

Непонятно, как заставить это работать не только вытаскивая из одной статьи картинку, а учитывая лимит, во всех работало.

Редакции сообщения
23.01.2020 10:50garryПричина: не указано
23.01.2020 16:16Дружаев Владимир (Otshelnik-Fm)Причина: не указано
0
Дружаев Владимир (Otshelnik-Fm)
не в сети 42 минуты
На сайте с 27.01.2013
Модератор
Тем 30
Сообщения 16061
4
10:51

    $matches = array();
    $pattern = 'src=\"(.*?)\"';
    preg_match( $pattern, $rbodytext, $matches );

далее смотри $matches[0] или $matches[1] что выдают

регулярка у тебя верная

Вы не можете просматривать опубликованные ссылки
Редакции сообщения
23.01.2020 10:52Дружаев Владимир (Otshelnik-Fm)Причина: не указано
23.01.2020 10:52Дружаев Владимир (Otshelnik-Fm)Причина: не указано
1
garry
На сайте с 04.01.2014
Участник
Тем 113
Сообщения 2185
5
10:56

Спасибо Владимир, буду разбираться. Надеюсь распутаю мозги у себя))

0
garry
На сайте с 04.01.2014
Участник
Тем 113
Сообщения 2185
6
12:09

Владимир, спасибо огромное, ты меня натолкнул на мысль и все решилось, осталось условия некоторые добавить, но все работает. 😀

1
Вы не имеете права на публикацию сообщений в этой теме