2012-01-11 1 views
0

Я пытаюсь создать плагин для WordPress, которому в какой-то момент кода необходимо отправить некоторую информацию на мой сервер. Плагин будет установлен на нескольких серверах с различными конфигурациями и возможностями.PHP и удаленный URL-адрес

Что мне нравится делать, чтобы сделать этот скрипт возможным для связи с моим сервером (просто для вызова определенного URL-адреса моего сервера) в любых возможностях конфигурации PHP и сервера.

Вот мой код:

ini_set("allow_url_fopen", 1); 

$d = array('key1' => 'val1', 'key2' => 'val2'); 
$data = urlencode(serialize($d)); 

$f = fopen('http://www.my-site.ext/getdata/' . $data . '/', 'r'); 
if(!$f) 
{ 
    $ch = curl_init(); 

    if($ch != false) 
    { 
     curl_setopt($ch, CURLOPT_URL, 'http://www.my-site.ext/getdata/' . $data . '/'); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $contents = curl_exec ($ch); 
     curl_close ($ch); 
    } 
    else 
    { 
     // IS THERE ANY OTHER METHOD TO TEST IN CASE 
     // THE FOPEN AND THE CURL NOT WORK ? 
    } 
} 
else 
{ 
    fclose($f); 
} 

Так что вопрос, есть ли какой-либо другой метод, я могу попробовать в том случае, Еореп и не Curl работать на конкретном хосте?

ответ

1

Вы можете использовать file_get_contents(), так как он по-прежнему отправляет запрос на получение. Тем не менее, fopen и fsockopen по-прежнему требуют разрешения allow_url_fopen.

Если на сервере разрешен безопасный режим, вы можете вы совершить любую сетевую транзакцию. Если вы используете getcontents, используйте unset() после вызова свободных ресурсов, чтобы он не мешал производительности.

1

Вы можете выполнить запрос вручную через fsockopen и написать базовый HTTP 1.0 клиент для выполнения запроса, но если fopen url wrappers отключены, вы, вероятно, обнаружите, что fsockopen также отключен.

Смежные вопросы