[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Возможно-ли сделать чтоб скрипт не ругался.
d4a1
Доброй ночи. Скрипт ругается на этот файл 20 строку. Возможно -ли её как-то "отключить"?
<?php

/**
* OO cURL Class
* Object oriented wrapper for the cURL library.
*/

class CURL
{

public $sessions = array();
public $retry = 0;

/**
* Adds a cURL session to stack
*
@param $url string, session's URL
*
@param $opts array, optional array of cURL options and values
*/

public function addSession( $url, $opts = false )
{
$this->sessions[] = curl_init( $url );
if( $opts != false )
{
$key = count( $this->sessions ) - 1;
$this->setOpts( $opts, $key );
}
}


/**
* Sets an option to a cURL session
*
@param $option constant, cURL option
*
@param $value mixed, value of option
*
@param $key int, session key to set option for
*/

public function setOpt( $option, $value, $key = 0 )
{
curl_setopt( $this->sessions[$key], $option, $value );
}

/**
* Sets an array of options to a cURL session
*
@param $options array, array of cURL options and values
*
@param $key int, session key to set option for
*/

public function setOpts( $options, $key = 0 )
{
curl_setopt_array( $this->sessions[$key], $options );
}

/**
* Executes as cURL session
*
@param $key int, optional argument if you only want to execute one session
*/

public function exec( $key = false )
{
$no = count( $this->sessions );

if( $no == 1 )
$res = $this->execSingle();
elseif( $no > 1 ) {
if( $key === false )
$res = $this->execMulti();
else
$res = $this->execSingle( $key );
}

if( $res )
return $res;
}

/**
* Executes a single cURL session
*
@param $key int, id of session to execute
*
@return array of content if CURLOPT_RETURNTRANSFER is set
*/

public function execSingle( $key = 0 )
{
if( $this->retry > 0 )
{
$retry = $this->retry;
$code = 0;
while( $retry >= 0 && ( $code[0] == 0 || $code[0] >= 400 ) )
{
$res = curl_exec( $this->sessions[$key] );
$code = $this->info( $key, CURLINFO_HTTP_CODE );

$retry--;
}
}

else
$res = curl_exec( $this->sessions[$key] );

return $res;
}

/**
* Executes a stack of sessions
*
@return array of content if CURLOPT_RETURNTRANSFER is set
*/

public function execMulti()
{
$mh = curl_multi_init();

#Add all sessions to multi handle
foreach ( $this->sessions as $i => $url )
curl_multi_add_handle( $mh, $this->sessions[$i] );

do
$mrc = curl_multi_exec( $mh, $active );
while ( $mrc == CURLM_CALL_MULTI_PERFORM );

while ( $active && $mrc == CURLM_OK )
{
if ( curl_multi_select( $mh ) != -1 )
{
do
$mrc = curl_multi_exec( $mh, $active );
while ( $mrc == CURLM_CALL_MULTI_PERFORM );
}
}


if ( $mrc != CURLM_OK )
echo "Curl multi read error $mrc\n";

#Get content foreach session, retry if applied
foreach ( $this->sessions as $i => $url )
{
$code = $this->info( $i, CURLINFO_HTTP_CODE );
if( $code[0] > 0 && $code[0] < 400 )
$res[] = curl_multi_getcontent( $this->sessions[$i] );
else
{
if( $this->retry > 0 )
{
$retry = $this->retry;
$this->retry -= 1;
$eRes = $this->execSingle( $i );

if( $eRes )
$res[] = $eRes;
else
$res[] = false;

$this->retry = $retry;
echo '1';
}
else
$res[] = false;
}

curl_multi_remove_handle( $mh, $this->sessions[$i] );
}

curl_multi_close( $mh );

return $res;
}

/**
* Closes cURL sessions
*
@param $key int, optional session to close
*/

public function close( $key = false )
{
if( $key === false )
{
foreach( $this->sessions as $session )
curl_close( $session );
}
else
curl_close( $this->sessions[$key] );
}

/**
* Remove all cURL sessions
*/

public function clear()
{
foreach( $this->sessions as $session )
curl_close( $session );
unset( $this->sessions );
}

/**
* Returns an array of session information
*
@param $key int, optional session key to return info on
*
@param $opt constant, optional option to return
*/

public function info( $key = false, $opt = false )
{
if( $key === false )
{
foreach( $this->sessions as $key => $session )
{
if( $opt )
$info[] = curl_getinfo( $this->sessions[$key], $opt );
else
$info[] = curl_getinfo( $this->sessions[$key] );
}
}

else
{
if( $opt )
$info[] = curl_getinfo( $this->sessions[$key], $opt );
else
$info[] = curl_getinfo( $this->sessions[$key] );
}

return $info;
}

/**
* Returns an array of errors
*
@param $key int, optional session key to retun error on
*
@return array of error messages
*/

public function error( $key = false )
{
if( $key === false )
{
foreach( $this->sessions as $session )
$errors[] = curl_error( $session );
}
else
$errors[] = curl_error( $this->sessions[$key] );

return $errors;
}

/**
* Returns an array of session error numbers
*
@param $key int, optional session key to retun error on
*
@return array of error codes
*/

public function errorNo( $key = false )
{
if( $key === false )
{
foreach( $this->sessions as $session )
$errors[] = curl_errno( $session );
}
else
$errors[] = curl_errno( $this->sessions[$key] );

return $errors;
}

}


?>


буду очень и очень благодарен ( почти пожизненно) user posted image



Спустя 22 минуты, 16 секунд (22.07.2011 - 00:30) DySprozin написал(а):
d4a1
чисто в теории, заменить
$this->sessions[] = curl_init( $url );
на
$this->sessions[] = @curl_init( $url );

но все-таки непонятно: всмысле ругается? какую ошибку выдает?

Спустя 8 минут, 40 секунд (22.07.2011 - 00:38) d4a1 написал(а):
Fatal error: Call to undefined function curl_init() in Z:\home\xxx\www\framework\uniprogy\extensions\curl\CURL.php on line 20

после $this->sessions[] = @curl_init( $url );
ошибки нет, но белый экран.

Спустя 4 минуты, 1 секунда (22.07.2011 - 00:42) Invis1ble написал(а):
d4a1
во-первых, было бы неплохо указать, какая строка является 20-ой, считать как-то не очень хочется
во-вторых - как именно ругается? пиши текст ошибки полностью

ПС. Уже вижу )

Спустя 2 минуты, 13 секунд (22.07.2011 - 00:44) d4a1 написал(а):
это 20 строка
$this->sessions[] = curl_init( $url );

Спустя 1 минута, 9 секунд (22.07.2011 - 00:46) d4a1 написал(а):
может еще куда @ (собак) поставить ? user posted image

Спустя 9 секунд (22.07.2011 - 00:46) Invis1ble написал(а):
d4a1
Цитата
Fatal error: Call to undefined function curl_init() in Z:\home\xxx\www\framework\uniprogy\extensions\curl\CURL.php on line 20

текст ошибки явно говорит о том, что вызывается неопределенная функция.
Как исправить? Установить модуль curl.

Спустя 1 минута, 35 секунд (22.07.2011 - 00:47) DySprozin написал(а):
d4a1
при хорошем раскладе в php.ini раскомментируй
extension=php_curl.dll

перезапусти сервер

должно все заработать (;

Спустя 59 секунд (22.07.2011 - 00:48) DySprozin написал(а):
и убери собаку - как выяснилось, не в ней счастье))

Спустя 3 минуты, 25 секунд (22.07.2011 - 00:52) Invis1ble написал(а):
Цитата
при хорошем раскладе в php.ini раскомментируй
extension=php_curl.dll

или extension=curl.so

Кстати, помоему там префикс php_ лишний, хотя хз, точно не помню smile.gif

Спустя 1 минута, 16 секунд (22.07.2011 - 00:53) d4a1 написал(а):
а где это extension=php_curl.dll ? в денвере где?
Установить модуль curl . куда установить ? где взять ?

а так конечно спасибо парни.

Спустя 1 минута, 50 секунд (22.07.2011 - 00:55) Invis1ble написал(а):
d4a1
Цитата
а где это extension=php_curl.dll ?

Цитата
при хорошем раскладе в php.ini раскомментируй

Спустя 2 минуты, 32 секунды (22.07.2011 - 00:57) d4a1 написал(а):
а где php.ini находится конкретно?

Спустя 1 минута, 32 секунды (22.07.2011 - 00:59) Invis1ble написал(а):
d4a1
по-разному, воспользуйся поиском в проводнике, ищи в папке, где у тя денвер твой установлен (или че у тебя там)

Спустя 19 минут, 59 секунд (22.07.2011 - 01:19) DySprozin написал(а):
d4a1
phpinfo() тебе подскажет расположение php.ini (;

Спустя 16 минут, 46 секунд (22.07.2011 - 01:36) d4a1 написал(а):
запустил. спасибо!
и откуда вы всё знаете

Спустя 3 минуты, 38 секунд (22.07.2011 - 01:39) Invis1ble написал(а):
Цитата
запустил. спасибо!

пожалуйста
Цитата
и откуда вы всё знаете

черпаем инфу из космоса smile.gif

Спустя 21 минута, 22 секунды (22.07.2011 - 02:01) DySprozin написал(а):
Цитата (Invis1ble)
черпаем инфу из космоса

спалил всю контору dry.gif laugh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.