Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как взять TITLE
 
 автор: bartik   (19.08.2006 в 01:44)   письмо автору
 
 

Всем привет , отдельное спасибо CHEOPS за книгу!

У меня следующий вопрос: Я загружаю определённый УРЛ через file_get_contents , пожалуйста скажите как мне взять определённый кусок скажем <title>(.*)</title> , то есть я хочу сделать так чтобы загружалось толька пару строчек , до <title>(.*)</title> , и (.*) - вводилась в переменную. Вся загвоздка в том что , мне надо быстро загружать страницу, а у меня получается медленно тк я беру всю страницу, а надо толька до title, а также не могу составить Рег.выражение. Покажите пожалуйста как сделать лучше. Спасибо.

   
 
 автор: Loki   (19.08.2006 в 11:44)   письмо автору
 
   для: bartik   (19.08.2006 в 01:44)
 

берите ее построчно и проверяйте в каждой строке наличие искомого текста. нашли - остановились.

   
 
 автор: BAHO   (19.08.2006 в 12:14)   письмо автору
 
   для: 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);
?>

   
 
 автор: Loki   (19.08.2006 в 12:34)   письмо автору
 
   для: BAHO   (19.08.2006 в 12:14)
 

Теперь представьте что site.html весит мегабайт. И таких файлов у вас 20 штук...

   
 
 автор: cheops   (19.08.2006 в 12:37)   письмо автору
 
   для: Loki   (19.08.2006 в 12:34)
 

Ну, как правило, это редкость... обычно HTML-файлы на порядки меньши...

   
 
 автор: Loki   (19.08.2006 в 12:39)   письмо автору
 
   для: cheops   (19.08.2006 в 12:37)
 

Редкость или не редкость, но человек об этом написал в первом же сообщении.

   
 
 автор: Webmaster-X   (19.08.2006 в 12:39)   письмо автору
 
   для: Loki   (19.08.2006 в 12:34)
 

может это поможет

<?php
$link 
"http://10.72.117.100";
$file fopen($link"r");
if (
$file) {      // если соединение прошло успешно...
$rf fread($file20000);// считываем в переменную содержимое открытого файла
$var eregi"<title>(.*)</title>"$rf$title);// это что-то новенькое... но смысл понятен - вырезает все,
//  что находится между <title> и </title>
fclose($file);// не нужно забывать закрывать за собой соединение
echo "ВСЕ ТУДА --> <a href=\"$link\">$title[1]</a>";// выводим результат на экран
} else { // если нет...
echo "Извините, соединение не было установлено!";
}
?>

   
 
 автор: bartik   (19.08.2006 в 14:10)   письмо автору
 
   для: Webmaster-X   (19.08.2006 в 12:39)
 

Большое спасибо за ответы , я ещё хотел узнать, а как загружать по строкам ? скажем толька первые 20 строчек , можно пример?

   
 
 автор: BAHO   (19.08.2006 в 14:41)   письмо автору
 
   для: 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 устарел :)

   
 
 автор: Loki   (19.08.2006 в 16:07)   письмо автору
 
   для: 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($handle1024);    
     if (
preg_match('/<title>(.*?)<\/title>/si',$result,$arr)) break;
}
fclose($handle);
    
print_r($arr);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования