|
|
|
| Всем привет , отдельное спасибо CHEOPS за книгу!
У меня следующий вопрос: Я загружаю определённый УРЛ через file_get_contents , пожалуйста скажите как мне взять определённый кусок скажем <title>(.*)</title> , то есть я хочу сделать так чтобы загружалось толька пару строчек , до <title>(.*)</title> , и (.*) - вводилась в переменную. Вся загвоздка в том что , мне надо быстро загружать страницу, а у меня получается медленно тк я беру всю страницу, а надо толька до title, а также не могу составить Рег.выражение. Покажите пожалуйста как сделать лучше. Спасибо. | |
|
|
|
|
|
|
|
для: bartik
(19.08.2006 в 01:44)
| | берите ее построчно и проверяйте в каждой строке наличие искомого текста. нашли - остановились. | |
|
|
|
|
|
|
|
для: Loki
(19.08.2006 в 11:44)
| | а не проще просто взять title страницы, а не искать его:
<?
$con=file_get_contents("site.html");
$pattern="|<title>(.+)</title>+|is";
preg_match($pattern,$con,$arr);
print_r($arr);
?>
|
| |
|
|
|
|
|
|
|
для: BAHO
(19.08.2006 в 12:14)
| | Теперь представьте что site.html весит мегабайт. И таких файлов у вас 20 штук... | |
|
|
|
|
|
|
|
для: Loki
(19.08.2006 в 12:34)
| | Ну, как правило, это редкость... обычно HTML-файлы на порядки меньши... | |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 12:37)
| | Редкость или не редкость, но человек об этом написал в первом же сообщении. | |
|
|
|
|
|
|
|
для: Loki
(19.08.2006 в 12:34)
| | может это поможет
<?php
$link = "http://10.72.117.100";
$file = fopen($link, "r");
if ($file) { // если соединение прошло успешно...
$rf = fread($file, 20000);// считываем в переменную содержимое открытого файла
$var = eregi( "<title>(.*)</title>", $rf, $title);// это что-то новенькое... но смысл понятен - вырезает все,
// что находится между <title> и </title>
fclose($file);// не нужно забывать закрывать за собой соединение
echo "ВСЕ ТУДА --> <a href=\"$link\">$title[1]</a>";// выводим результат на экран
} else { // если нет...
echo "Извините, соединение не было установлено!";
}
?>
|
| |
|
|
|
|
|
|
|
для: Webmaster-X
(19.08.2006 в 12:39)
| | Большое спасибо за ответы , я ещё хотел узнать, а как загружать по строкам ? скажем толька первые 20 строчек , можно пример? | |
|
|
|
|
|
|
|
для: bartik
(19.08.2006 в 14:10)
| | 2Loki: может у человка просто диал-ап...как у меня :)...
2bartik:
<?
<?
$pattern="|<title>(.+)</title>|is";
$file="site.html";
$arr_file=file($file);
foreach($arr_file as $key=>$val)
{
if($key<20)
{
if(preg_match($pattern,$val,$arr))
{
break;
}
}
}
print_r($arr);
?>
|
2 Webmaster-X : eregi устарел :) | |
|
|
|
|
|
|
|
для: BAHO
(19.08.2006 в 14:41)
| | Вы чо, издеваетесь чтоли?:)
Человек спрашивает как не тянуть целый файл для разбора, а вы ему показываете какими способами его можно целиком стянуть!
<?php
$handle = fopen("http://softtime.ru/forum/answer.php?id_forum=1&id_theme=22890&id_post=133236", "r");
while (!feof($handle)) {
$result = fgets($handle, 1024);
if (preg_match('/<title>(.*?)<\/title>/si',$result,$arr)) break;
}
fclose($handle);
print_r($arr);
?>
|
| |
|
|
|