Захотел я тут недавно сделать так, чтобы последние сообщения из моих смс.копилок показывались прямо на сайте. Но вот беда – тот скрипт, который предлагают на сайте смс.копилки не работает на моём хостинге. Он использует модуль, который по умолчанию в php не включён. Пинать хостера чтобы мне включили его я не стал, т.к. хостинг и так халявный, да ещё и по английски я плохо шпрэхаю (хостер то забугорный) – напишу чё-нить не то... :) Лучше внимания не буду к себе привлекать. Решил искать в Яндексе всё, что связано с этим вопросом. В конце концов, что самое смешное, набрёл на офф. сайт PHP, в раздел описания этой XML функции, где в комментах народ постил свои скрипты, с помощью которых можно «разгребать» XML не используя эту функцию, которая по умолчанию в php отсутствует. Сразу хочу сказать, что программист из меня никудышный, но кое-что слепить из найденного у меня получилось:
Код:
<?
function GetElementByName ($xml, $start, $end) {
}
$file = "http://smskopilka.ru/client/export/smskopilka_НОМЕР.xml";
$pos = 0;
$Nodes = array();
if (!($fp = fopen($file, r))) {
}
while ($getline = fread($fp, 4096)) {
}
$count = 0; $pos = 0;
while ($node = GetElementByName($data, <item, "</item>")) {
}
$count = 3;
for ($i=0; $i<$count; $i++) { $code = GetElementByName($Nodes[$i], <date>", "</date>");
$desc = GetElementByName($Nodes[$i], <time>", "</time>"); $tex = GetElementByName($Nodes[$i], <text>", "</text>");
$text = $tex."<br />";
echo $code." «.$desc.» – <span style=\"color: #ffa303;\">".$text."</span>"; }
?>
НОМЕР нужно заменить на номер вашей смс.копилки $count = 3; означает, что будет выводится 3 верхних строчки сообщений из вашей смс.копилки.
К сожалению на некоторых хостингах (особенно на бесплатных) нельзя вот тако вот из php напрямую открывать файлы с другого сервера, и даже через сокеты нельзя и через curl. Поэтому я решил немножко доработать этот скриптик, положить его на хост там, где можно открывать файлы и сделал вот что: На любой странице ставится следующий яваскрипт:
Код: <script type="text/javascript" src="http://66.246.229.15/~terbo/kopilka.php?num=НОМЕРКОПИЛКИ&lines=4"></script>
Cкриптик принимает номер копилки, запрашивает с сервера файл с сообщениями, обрабатывает его, и выводит результат в виде ява скрипта – обычный document.write. lines=4 это сколько сообщений нужно показывать. Пример работы скрипта Вы можете видеть в верху этой страници. Если кто-то захочет у себя на сайте выводить сообщения с помощью моего ява скрипта – пожалуйста, я не против.