2016-08-01 4 views
0

Я разработал скрипт с PHP, который я использую с консолью, с командой php index.php.Не показывать журналы с помощью команды PHP и cURL

В этом скрипте я использую cURL для запроса сервера.

Проблема заключается в том, что мой сценарий показывает журналы на консоли, и я просто хочу получить результат эха.

У вас есть идея скрыть эти журналы?

// GET TOKEN 
// ///////////////////////////////////////////////////////////////////////////// 
$url = "some/url"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pwd"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
$data = curl_exec($ch); 
$location = ""; 
preg_match_all('/^Location:(.*)$/mi', $data, $location); 
$location = trim($location[1][0]); 
$location = parse_url($location); 
parse_str($location['query'], $attrs); 
$token = $attrs['code']; 

if(isset($token)) { 

    // GET CONNEXION 
    // ///////////////////////////////////////////////////////////////////////// 
    $url = "some/url"; 
    $post_data = ['code' => $token, 'grant_type' => 'authorization_code']; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_USERPWD, "$client_id:$client_secret"); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $data = json_decode(curl_exec($ch)); 
    $connexion = isset($data->access_token) ? $data->access_token : $data->error_description; 

    // GET LOGIN 
    // ///////////////////////////////////////////////////////////////////////// 
    $url = "some/url"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $data = curl_exec($ch); 
    $data = json_decode($data); 
    // $login = json_encode(['public' => $data->api_keys[1]->public, 'secret' => $data->api_keys->secret]); 

    // REQUEST 
    // ///////////////////////////////////////////////////////////////////////// 
    $url = $request . "?externalId=".$external_id."&externalSource=".$external_source; 
    date_default_timezone_set("Europe/Paris"); 
    $nonce = generateRandomString(); 
    file_put_contents('php://stderr', print_r("Set random nonce to " . $nonce . "\n", TRUE)); 
    $created = date("Y-m-dTH:i:sP"); 
    $created = date("Y-m-dTH:i:sP"); 
    $username = $data->api->public; 
    $secret = $data->api->secret; 
    $pwd_digest = base64_encode(sha1($nonce.$created.$secret)); 
    $auth_header = "X-WSSE: UsernameToken Username=\"$username\", PasswordDigest=\"$pwd_digest\", Nonce=\"$nonce\", Created=\"$created\""; 
    $header = array($auth_header, 'Accept: something', 'Accept-Language: en'); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $data = curl_exec($ch); 
    $data = json_decode($data); 
    echo $data->nbNqPoints; 

} else { 
    echo "0"; 
} 
+0

Потому что с каждым сайтом мы должны обработать с каждым способом. Так вы можете предоставить свой $ url и любую вещь, которую вы можете предоставить, чтобы мы могли вам помочь! –

+0

Я не знаю, связано это или нет, но где вы устанавливаете CURLOPT_RETURNTRANSFER, попробуйте установить его на 'true' вместо 1. –

+1

вы можете использовать немного ob_start(); ob_get_clean(); взломать, чтобы пройти через это – hanshenrik

ответ

0

Ответ нашел по этому адресу: managing curl output in php

добавить эту строку для каждого экземпляра Curl:

curl_setopt($ch, CURLOPT_VERBOSE, 0); 
Смежные вопросы