Разделы  



Полезности  



Blogroll  



Самые обсуждаемые  

  • Ни одного обсуждаемого поста за три месяца...


Кнопочки  



EOMY.NET: бесплатный хостинг без рекламы
Рейтинг блогов
WMas - интернет каталог блогов
количество читателей онлайн и всего
pfaff

Рейтинг блогов
и родина тебя не забудет
ЯндексЯндекс. ДеньгиХочу такую же кнопку


Статистика  

  • PGT: 0.0183 сек.
  • SQL: 4
  • Статика: Нет


Опции:  



 
cайт оптимизирован для просмотра в Mozilla Firefox!
21.10.2006
20:02

Захотел я тут недавно сделать так, чтобы последние сообщения из моих смс.копилок показывались прямо на сайте. Но вот беда – тот скрипт, который предлагают на сайте смс.копилки не работает на моём хостинге. Он использует модуль, который по умолчанию в php не включён. Пинать хостера чтобы мне включили его я не стал, т.к. хостинг и так халявный, да ещё и по английски я плохо шпрэхаю (хостер то забугорный) – напишу чё-нить не то... :) Лучше внимания не буду к себе привлекать. Решил искать в Яндексе всё, что связано с этим вопросом. В конце концов, что самое смешное, набрёл на офф. сайт PHP, в раздел описания этой XML функции, где в комментах народ постил свои скрипты, с помощью которых можно «разгребать» XML не используя эту функцию, которая по умолчанию в php отсутствует. Сразу хочу сказать, что программист из меня никудышный, но кое-что слепить из найденного у меня получилось:

Код:

<?

function GetElementByName ($xml, $start, $end) {

global $pos;
$startpos = strpos($xml, $start); if ($startpos === false) {
return false;
}
$endpos = strpos($xml, $end); $endpos = $endpos+strlen($end);
$pos = $endpos;
$endpos = $endpos-$startpos;
$endpos = $endpos – strlen($end); $tag = substr ($xml, $startpos, $endpos);
$tag = substr ($tag, strlen($start));
return $tag;

}

$file = "http://smskopilka.ru/client/export/smskopilka_НОМЕР.xml";

$pos = 0;

$Nodes = array();

if (!($fp = fopen($file, “r”))) {

die(«could not open XML input»);

}

while ($getline = fread($fp, 4096)) {

$data = $data . $getline;

}

$count = 0; $pos = 0;

while ($node = GetElementByName($data, “<item”, "</item>")) {

$Nodes[$count] = $node; $count++;
$data = substr($data, $pos);

}

$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 это сколько сообщений нужно показывать. Пример работы скрипта Вы можете видеть в верху этой страници. Если кто-то захочет у себя на сайте выводить сообщения с помощью моего ява скрипта – пожалуйста, я не против.