Как получить текст веб-страницы в виде строки на php...

программирование php get file contents

... для последующего парсинга. Да не просто веб-страницы, а той, которой и на сервере нет :(
Я пробовал функцию file_get_contents, но она как раз не работает с этими ЧПУ- ссылками.
З.Ы. если в строку, то в массив хотя бы...

Примечание:
kstati, я имел ввиду что на сервере ведь файлов нет, страницы выдаются потоком браузеру. А file_get_contents видимо работает с существующими файлами. Ибо в одном случае (без ЧПУ) работает, а в другом (с ними) нет.
Mak1012, эти функции как я понял работают только с той страницей, где и сам код.

Примечание:
Понял свою ошибку. Работает только на своем сайте. Если пытаться в функцию file_get_contents указать другой сайт, то почему то она возвращает false... В чем причина?

Примечание:
kstati, а что нельзя сымитировать работу браузера и получить поток данных как она выдается юзеру?

Примечание:
Странно, после curl_init() любое echo перестает что-либо выдавать.
Проверю потом на другом сервере. А если не работает то какая строка в конфигурационном файле за это отвечает?

Примечание:
kstati, а вариант через сокеты какой?

Примечание:
azlab.org, ну как всегда. задашь вопрос и тебя отправляют читать книги. нафига тогда нужны ВиО ?? Чтобы указывать что читать? А за книжку спасибо, всю читать не буду, в инете найду может и почитаю что надо.
"вы хоть книгу купили какую-нить по вэб-программированию?" в хоть какой-нибудь книге не обязательно это написано.
Японский Городовой, вот спасибо, этот ответ так полезен! Я же сказал, что понял свою ошибку. ЧПУ ни при чем. Но и функции curl, которые мне посоветовали не работают.

OCTAGRAM, возвращает false. Может быть надо какую-нибудь строку в php.ini изменить, чтобы функция заработала?

Примечание:
allow_url_fopen= On
allow_url_include=Off
не работает все равно. параметры стояли изначально. Больше никакие не влияют?

Примечание:
К сожалению не могу просматривать логи, так как использую хостинг. И php.ini конфигурировать тоже не могу.
Хостинг ho.ua . Может в нем все дело?? Посоветуйте другой, если что. Пробовал другой, там вообще пишет, что file_get_contents() запрещен.
Уже 8 дополнение , а вопрос все висит... Скоро 10 сообщение и усе.

Примечание:
Это клиника. Функция GetPage дает error. Думаю, что все эти функции должны работать, просто я выбрал не тот хостинг. Буду искать другие. И все-таки версия php на этом хостинге версии 5.2.8.
kstati, может быть скинете настройки вашего сервера, ведь там все работает как я понял. Сравню их хотя бы. Может и приду к чему-нибудь...
Ответы:
Смотри функции:
Уточни, пожалуйста, что имеется ввиду под высказыванием:
Да не просто веб-страницы, а той, которой и на сервере нет :(
> почему то она возвращает false... В чем причина?
> 1. Работа запрещена на уровне конфигов (тут уже ничего не поделаешь).
В php.ini запрещена работа с url-ами как с файлами.
Можно, но вопрос-то был поставлен смутно. Я ж и просил уточнить ;)
Можно через сокеты вручную, но если работает curl - экстеншен, то выгоднее так:
<?php
// инициализация сеанса
$ch = curl_init();
file_get_contents("http://www.google.ru/") что–нибудь возвращает или нет?
Товарищ, вы хоть книгу купили какую-нить по вэб-программированию? :) В любой из них - есть глава, объясняющая механизмы HTTP. Прочитав ее - нетрудно понять как "прикинуться" браузером. У того же Д.Котерова - даже есть отдельная глава типа "HTTP-сеанс без браузера". Мой совет - купите книгу Котерова, помимо ответа на этот вопрос, вы найдете в нем массу полезного. На мой взгляд - он лучший автор из русско-язычных по PHP (и кстати, это он автор Денвера)
>Я пробовал функцию file_get_contents, но она как раз не работает с этими ЧПУ- ссылками.
allow_url_fopen = On
А Warning в логах есть?
/**
URL -- адрес страницы .
порт -- порт сервера.
*/
Пример рабочей функции.
Реально пошарь по rfc.net, php.net
<?
/**
URL -- адрес страницы .
порт -- порт сервера.
*/
/**
URL -- адрес страницы .
порт -- порт сервера.
*/
function GetPage($URL, $port=80 ) {
$matches = array();
$test = preg_match('#^(:?http://)(.[^/]+)(.*)$#i', $URL,$matches);
@$server = $matches[2];
Пример рабочей функции на пхп
/**
URL -- адрес страницы .
порт -- порт сервера.
*/
Гугл всячески блокирует мой ответ -- видно в коде что-то не понравилось, считает попыткой взлома, поэтому выбрасываю в гугл-доках.
А смысл сбрасывать конфиги?
php.net пошурши, посмотри свой вывод <?=phpinfo();?>
Скорее всего у тебя на хостере всё заблокированно на фиг. Связывайся с хостером, либо меняй его.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.