<?php
/***************************************************************************
* xmlparser2.php
* version 1.0 от 4.04.06
*
* Copyright (c) 2006 Movable Co. Ltd
*
www.movable.ru
*
* проект sms.копилка
www.smskopilka.ru
*
* данный парсер Вы можете использовать как пример для доступа
* к последним сообщеним Вашей sms.копилки
* Причем этот парсер в отличие от xmlparser.php не требует дополнительных библиотек
* и работает без проблем с PHP 4, 5 версий
***************************************************************************/
/*
* Для работы с разбором xml вам нужен язык сценариев PHP версии от 4 или выше.
* Проконсультируйтесь с вашим хостинг провайдером.
*
* ЗДЕСЬ ВЫВОДИТСЯ ПРИМЕР ИСПОЛЬЗОВАНИЯ ПЕРЕМЕННЫХ, ВСЕ ПОЛЯ ПОДПИСАНЫ
* ИСПОЛЬЗУЙТЕ ИХ НА СВОЕ УСМОТРЕНИЕ.
*
* Любая модификация данного файла возможна. Парсер предоставлен на условиях "Как есть".
* Если сделаете что-то интересное, просьба сообщить нам -
support@movable.ru, внедрим с указанием вашего имени.
*/
(isset($_GET['smskopilka']))?$smskopilka=$_GET['smskopilka']:$smskopilka=NULL;
(isset($_GET['count']))?$countStr=$_GET['count']:$countStr=10;
//замените цифры в конце "XXXX" на номер Вашей sms.копилки, это тот номер, который идет после "kop+"
$file = "http://smskopilka.ru/client/export/smskopilka_".$smskopilka.".xml";
//количество выводимых строк, вставьте вашу цифру
//$countStr = "10";
$pos = 0;
$Nodes = array();
if (!($fp = fopen($file, "r"))) {
die("Не удается открыть XML файл - ".$file.", может его нет?<br> Первый раз он создается при отправке первой SMS");
}
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);
}
for ($i=0; $i<$countStr; $i++) {
$dateSMS = GetElementByName($Nodes[$i], "<date>", "</date>");
$timeSMS = GetElementByName($Nodes[$i], "<time>", "</time>");
$textSMS = GetElementByName($Nodes[$i], "<text>", "</text>");
/* отформатировать строку ниже можно как вам угодно,
* укажите ваше форматирование и стили, короче оформляйте как захочется
*
* главное это полученные переменные:
* $dateSMS - дата получения sms cообщения
* $timeSMS - время получения сообщения
* $textSMS - текст сообщения
*/
echo $dateSMS." ".$timeSMS." - ".$textSMS."<br/>";
}
//---------------------------------
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;
}
?>