Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ИЗ javascript в PHP 
:(
    Опции темы
abalich
Дата 4.2.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



http://www.sportonline.ru/
Вот осюда нужно стырить массив с результатами событий в режиме on-line

И делать с ним все что захочется.
ТОлько массив.


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Smith
Дата 4.2.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 17.1.2007

Репутация: нет
Всего: 2



Код

<?
Header("Content-Type: text/html; charset=cp1251");

// Создаем базу с полями id, time и var
// Считываем из базы единственную строчку

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM `".$db_name."` LIMIT 0,1"));

// Время убийства старых данных (5 мин по ходу :))

$death_time = time() - 60*5;

if ($row['time'] <= $death_time) {
// Получаем весь файл в целом
    $site = file("http://www.sportonline.ru/");
// Выдергиваем 15 строку и парсим
    $site[14] = preg_replace('#reports=Array\(0,Array\(".+?",(.*?)\)#is', "\\1", $site[14]);
// Парсим строку дальше
    preg_match_all('/Array\(([0-9]*),([0-9]*),([0-9]*),"(.*?)","(.*?)","(.*?)","(.*?)","(.*?)"/', $site[14], $matches);
// Делаем массив удобным для чтения
    for ($i=1; $i<=8; $i++) {
        for ($j=0; $j<count($matches[$i]); $j++) {
            $var[$j][$i] = $matches[$i][$j];
        }
    }
    $mysql_var = htmlspecialchars(serialize($var));
// Записываем новые сведения
    mysql_query("UPDATE `".$db_name."` SET `time`='".time()."', `var`='".$mysql_var."' WHERE `id`='".$row['id']."'");
} else {
    $var = stripslashes(unserialize($row['var']));
}
// Дальше можно работать с массивом
echo "<pre>";
print_r($var);
echo "</pre>";
?>

так по ходу)

Это сообщение отредактировал(а) Smith - 4.2.2008, 16:33
PM MAIL   Вверх
sTa1kEr
Дата 4.2.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 5
Всего: 146



На регулярках, болие-мение не зависимое от расположения и порядок массивов и с учетом экранированных кавычек:
Код

$str = file_get_contents("http://www.sportonline.ru/");
$reports = array();
$shift = create_function('&$i','array_shift($i);');

preg_match("/^\s*reports\s*=\s*Array\((.*?)\);\s*$/im", $str, $m);
preg_match_all('/Array\("((?:[^"]|(?<=\/)")*)",((?:\s*,?\s*Array\([^)]+\))+)\)/i', $m[1], $m, PREG_SET_ORDER);
foreach ($m as $val)
{
   preg_match_all('/Array\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*"([^"]*)"\s*,\s*"([^"]*)"\s*,\s*"([^"]*)"\s*,\s*"([^"]*)"\s*,\s*"([^"]*)"\s*\)/iS', $val[2], $m2, PREG_SET_ORDER);
   array_walk($m2, $shift);

   $reports[] = $val[1];
   $reports[] = $m2;
}

var_dump($reports);


Так же можно применить небольшой хак с json-ом smile
Код

$str = file_get_contents("http://www.sportonline.ru/");

preg_match("/^\s*reports\s*=\s*Array(\(.*?\));\s*$/im", $str, $m);
$str = mb_convert_encoding(str_ireplace(array("Array","(",")"), array("","[","]"), $m[1]), "UTF-8", "Windows-1251");
$reports = json_decode($str);

var_dump($reports);

Кстати, этот вариант получился самы коротки и самый быстрый, но нужен PHP версии от 5.2 либо сторонняя библиотека JSON и еще, если используется кодировка не UTF-8, то необходимо будет из нее переконвертировать обратно.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.