[php][lam] выделить пару строк из файла

Trams

в общем, захотелось написать скрипт, чтобы допустим из
http://maximum.ru/playlist.asp
выделить группу и название текущей песни. посмотрел сейчас работу со строками в пхп, но почему то такой вариант не канает
$file = fopen("http://maximum.ru/playlist.asp","r");
if(!file) { echo("bla-bla-bla"); die;}
$textall = fread($file, 2000); //читаем всё содержимое(~1.5kb)
$text1 = substr (substr($textall, strpos($textall,"alt" 12); //получаем часть файла после тэга картинки
$text2 = strtolower(strip_tags($text1; //убираем все тэги
но там пробелов между двумя текстовыми строками не остаётся(название группы и трека). дальше почему то мои представления о теории не совпадают с практикой..(извернуться не получилось)
как вообще это можно попроще сделать?
в пхп я почти ноль, а тут грят отцов дофига =)

laki

наверное удобнее и быстрее сделать при помощи regexp.

uncle17

fopen не работает с удаленными файлами. Самого с полгода назад та же проблема интересовала

laki

array file ( string filename [, int use_include_path [, resource context]])
$Data = implode("", @file("www.domain.ru";

Trams

такой вариант обдумывал. но регекспы тоже не знаю (почти)
какую строку надо искать?
$pattern = '/([\>]{1}[a-zA-Z0-9а-яА-Я .\-]{1,}[\<]{1})/';
(и брать среднее) ? вообще в regexp русские буквы понимает, или как их мб обозначать?
> fopen не работает с удаленными файлами. Самого с полгода назад та же проблема интересовала
ээ... но у меня вроде так всё работает, просто там пробела нет (и пример в инете видел такой же)

Trams

$pattern = '/([\>]{1}[a-zA-Z0-9а-яА-Я .\-]{1,}[\<]{1}[^.]{0,}[\>]{1}[a-zA-Z0-9а-яА-Я .\-]{1,}[\<]{1})/';
if(!preg_match($pattern,$text1,$matches {die;}
$name = $matches[2].' '.$matches[6];
вроде работает

artimon

<?
$s = @file_get_contents('http://maximum.ru/playlist.asp');
preg_match('#current">(.+)</tr>#s',$s,$tmp);
preg_match('#140" class="acenter">(.+)<.+class="title">(.+)<#s',$tmp[1],$tmp);
$artist = $tmp[1];
$title = $tmp[2];
?>
ЗЫ. Проверки сам вставь

artimon

Это зависит от настроек php.

uncle17

угу

Trams

спасибо регекспы эт клёво, да (правда я твой пример еле понимаю, ещё поботать надо %
сам догадался как через них делать конечно по закону Мэрфи тока после того как сюда запостил =)

Trams

твоё не прокатило, там ещё </td> осталось (моё правда тоже не всегда работает%)
BRAINSTORM</td> MAYBE

Trams

удивительное дело с оперой...
реализовал получение текста этим:
<?php
$file = @file_get_contents('http://maximum.ru/playlist.asp');
$text1 = substr($file,strpos($file,"alt")+46);
$text3 = substr($text1,0,strpos($text1,"tr")-7);
$pattern = '/([^\<]{1,}[\<]{1}[^.]{0,}[\>]{1}[^\<]{1,})/';
if(!preg_match($pattern,$text3,$matches{ die;};
$song = htmlspecialchars(strtolower($matches[1].' '.$matches[5];
echo '<meta http-equiv="refresh" content="1; URL=../search.php?s='.$song.'&db=2">';
?>
так вот когда русский текст получается, опера выдаёт фуфло (т.е. типа 18-2 0=35;K с остальными всё ок(IE6,firefox)... вот прям щас например http://iter.hackers/search-new/user/maximum.php
че то у меня почти нет идей, из-за чего такое может быть %-\

stm7884696

наверно потому, что надо правильный чарсет опере возвращать...

Trams

<HTML>
<HEAD>
<TITLE></TITLE>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<LINK rel="SHORTCUT ICON" href="/search.ico">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, max-age=0">
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">
...
недостаточно?(включается в самое начало)
или как написать "правильный" чарсет для оперы тогда
а, или имеется в виду после выполнения htmlspecialchars надо чарсет как то установить?

stm7884696

ну типа не только хеадер чарсет выдает..
Еще есть серваковский и пхп шный, которые прописываются в их конфигах...
Оставить комментарий
Имя или ник:
Комментарий: