Подключение файла через fopen

Статус
В этой теме нельзя размещать новые ответы.

Jak1777

Создатель
Регистрация
15 Июн 2007
Сообщения
16
Реакции
1
Нужно забирать строчку с сайта на другом сервере и выводить ее, как это реализовать?
Нашел код на примере title но он не работает..
Код:
<?php
$file = fopen ("http://site.com/sample.php", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Это будет работать, только если title и его тэги расположены в одной строчке */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>
содержимое sample.php:
Код:
<title><а href="http://ya.ru/">555</a></title>
как заставить его работать? allow_url_fopen включен..
 
Попробуй так:

PHP:
<?php
$file = fopen ("http://site.com/sample.php", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line .= fgets ($file, 1024);
}

if (eregi ("<title>(.*)</title>", $line, $out)) {
    $title = $out[1];
}

echo $title;

fclose($file);
?>
 
Работает, но теперь другая проблема..
На сайте на одной странице код используется несколько раз, и каждый раз он увеличивает на 1 количество выводимых строк..
т.е.
Первая вставка - выводит [подгружаемый_код]
Вторая вставка - выводит [подгружаемый_код][подгружаемый_код]
Третья вставка - выводит [подгружаемый_код][подгружаемый_код][подгружаемый_код]

как сделать чтоб он один раз выводил?
 
Вот так попробуйте этой ф-ии плевать сколько раз там тайл он возметь только первую , и доп бонус-конвертация всех тайтлов в utf8 это удобно когда страницы в разных кодировках.

PHP:
function get_title($file){ 
$html = file_get_contents("http://".$file);
preg_match('|<title>(.*)</title>|mi', $html, $result);
preg_match('/encoding="([^"]+)"/iUs', $html, $charset);
$result = iconv($charset[1], "utf8", $result[1]);
return $result;
}

Код:
echo get_title("google.com");
 
Вот так попробуйте этой ф-ии плевать сколько раз там тайл он возметь только первую , и доп бонус-конвертация всех тайтлов в utf8 это удобно когда страницы в разных кодировках.
Выводит пустой ответ..
Код:
<?php
function get_title($file){ 
$html = file_get_contents("http://".$file);
preg_match('|<title>(.*)</title>|mi', $html, $result);
preg_match('/encoding="([^"]+)"/iUs', $html, $charset);
$result = iconv($charset[1], "utf8", $result[1]);
return $result;
}  
echo get_title("vds-ns.com");
?>

Добавлено через 9 минут
Попробуй так:
PHP:
<?php
$file = fopen ("http://site.com/sample.php", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line .= fgets ($file, 1024);
}
if (eregi ("<title>(.*)</title>", $line, $out)) {
    $title = $out[1];
}
echo $title;
fclose($file);
?>
лишняя точка тут:
Код:
$line .= fgets ($file, 1024);
Код работает, только ~ на 20 выводе показывается ошибка и дальше сайт не грузится:
Код:
Warning: fopen(http://site.com/sample.php): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/home/user/domains/site2.com/public_html/index.php(203) : eval()'d code on line 1579

Unable to open remote file
 
почему то на этом сайте прег матч отказался выдрать строку, вот рабочая...

PHP:
function get_title($file){ 
$html = file_get_contents("http://".$file);
eregi('<title>(.*)</title>', $html, $result);
$result = $result[1];
return $result;
}
echo get_title("vds-ns.com");
 
почему то на этом сайте прег матч отказался выдрать строку, вот рабочая...
Он не хочет работать на DLE, вызов там идет через eval()
Код:
Fatal error: Cannot redeclare get_title() (previously declared in /var/home/user/domains/site2.com/public_html/index.php(203) : eval()'d code:290) in /var/home/user/domains/site2.com/public_html/index.php(203) : eval()'d code on line 348
 
  • Заблокирован
  • #8
Он не хочет работать на DLE, вызов там идет через eval()
Код:
Fatal error: Cannot redeclare get_title() (previously declared in /var/home/user/domains/site2.com/public_html/index.php(203) : eval()'d code:290) in /var/home/user/domains/site2.com/public_html/index.php(203) : eval()'d code on line 348
Так иди в раздел DLE
Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху