С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 02/11/08 в 16:38 |
Допустим имеем хост с версией php3, либо с отключеннными fopen оболочками, либо все вместе . Стоит допусим cURL. Нужно получить в строку исходный код страници что грабим для дальнейшей замены в нем некоторых тегов. Какие есть мысли? Я знаю что можно с помощью cURL, по сути так и делаю. Хочется увидеть ваши решения.
|
|
Пишу скрипты, асикью 444584-921
|
0
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 02/11/08 в 16:41 |
ну в строку можно и так запихать собсно как ты и указал. если я верно понял твой вопрос
|
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 02/11/08 в 16:44 |
_s_[sov] писал: | ну в строку можно и так запихать собсно как ты и указал. если я верно понял твой вопрос |
Дело в том, что эта функция была введена в PHP 4.3.0, URL в качестве с этой функцией, если "fopen-оболочки" включены.
|
|
Пишу скрипты, асикью 444584-921
|
0
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 02/11/08 в 16:51 |
ну тогда используй и далее так тоже можно...
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 02/11/08 в 16:55 |
Цитата: | имеем хост с версией php3 |
...который восстановили после криогенной заморозки в 1998 году!
По сабжу - скачай клиентский php-код с sape.ru и посмотри как там сделано, вроде там аж 4 разных варианта на разные случаи реализовано.
|
|
Power of the lime madness...
|
0
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 02/11/08 в 18:39 |
_s_[sov] писал: | ну тогда используй и далее так тоже можно... |
имеешь введу
Код: |
$fcontents = implode ('', file ('http://www.example.com/'));
|
только fopen-оболочки отключены, работать не будет.
|
|
Пишу скрипты, асикью 444584-921
|
0
|
|
|
127.0.0.1
С нами с 26.04.06
Сообщения: 1092
Рейтинг: 557
|
Добавлено: 02/11/08 в 19:14 |
вообщем-то курлом и делать, других вариантов нет, кроме как через сокеты
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 03/11/08 в 09:51 |
TRUE_AND_FALSE у тебя доступ к php.ini есть?
|
|
|
|
С нами с 03.10.08
Сообщения: 129
Рейтинг: 141
|
Добавлено: 03/11/08 в 09:55 |
_s_[sov] писал: | TRUE_AND_FALSE у тебя доступ к php.ini есть? |
Нету. Скрипт для общего пользования.
|
|
Пишу скрипты, асикью 444584-921
|
0
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 03/11/08 в 10:34 |
TRUE_AND_FALSE:
Ещё разок, т.к. есть где посмотреть неплохое решение: клиентский PHP-код sape.ru содержит решение file_get_contents, CURL и sockets, включающее проверку на подходящий вариант и работающее на большинстве хостов. Внутри скрипта sape.ru есть такая функция:
Код: | function fetch_remote_file($host, $path) {
$user_agent = 'SAPE_Client PHP ' . $this->_version;
@ini_set('allow_url_fopen', 1);
@ini_set('default_socket_timeout', $this->_socket_timeout);
@ini_set('user_agent', $user_agent);
if (
$this->_fetch_remote_type == 'file_get_contents'
||
(
$this->_fetch_remote_type == ''
&&
function_exists('file_get_contents')
&&
ini_get('allow_url_fopen') == 1
)
) {
if ($data = @file_get_contents('http://' . $host . $path)) {
return $data;
}
} elseif (
$this->_fetch_remote_type == 'curl'
||
(
$this->_fetch_remote_type == ''
&&
function_exists('curl_init')
)
) {
if ($ch = @curl_init()) {
@curl_setopt($ch, CURLOPT_URL, 'http://' . $host . $path);
@curl_setopt($ch, CURLOPT_HEADER, false);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->_socket_timeout);
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
if ($data = @curl_exec($ch)) {
return $data;
}
@curl_close($ch);
}
} else {
$buff = '';
$fp = @fsockopen($this->_server, 80, $errno, $errstr, $this->_socket_timeout);
if ($fp) {
@fputs($fp, "GET {$path} HTTP/1.0\r\nHost: {$host}\r\n");
@fputs($fp, "User-Agent: {$user_agent}\r\n\r\n");
while (!@feof($fp)) {
$buff .= @fgets($fp, 128);
}
@fclose($fp);
$page = explode("\r\n\r\n", $buff);
return $page[1];
}
}
return $this->raise_error('Не могу подключиться к серверу: ' . $host . $path);
} |
На основе этого можно сделать своё, как минимум.
|
|
Power of the lime madness...
|
4
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 03/11/08 в 19:50 |
|
|
|
|