как сделать команду curl с php - PullRequest
0 голосов
/ 01 мая 2018

Я новичок в скручивании. у меня есть этот код curl. но я понятия не имею о запуске этого с php

curl -X POST -u "{username}":"{password}"
--header "Content-Type: audio/flac"
--data-binary "@audio-file1.flac"
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?timestamps=true&word_alternatives_threshold=0.9&keywords=%22colorado%22%2C%22tornado%22%2C%22tornadoes%22&keywords_threshold=0.5" 

это мой php код. Но я не уверен, что я прав.

$s = curl_init();
curl_setopt($s, CURLOPT_URL, 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?timestamps=true&word_alternatives_threshold=0.9&keywords=%22colorado%22%2C%22tornado%22%2C%22tornadoes%22&keywords_threshold=0.5');
curl_setopt($s, CURLOPT_POST, 1);
curl_setopt($s, CURLOPT_POSTFIELDS, http_build_query([
    '--header' => "Content-Type: audio/flac",
    '--data-binary' => '@audio-file1.flac'

]));
curl_exec($s);
curl_close($s);

, пожалуйста, помогите мне, как добавить -u "{username}": "{password}" в код php?

1 Ответ

0 голосов
/ 02 мая 2018

хороший способ сделать это с помощью дескриптора файла и CURLOPT_INFILE, он будет работать с файлами любого размера и позволяет начать загрузку до того, как весь файл будет считан с диска, таким образом это быстрее и использует только небольшой объем памяти, независимо от размера файла. однако быстрый и простой способ, при котором весь файл помещается в память одновременно и не начинается загрузка до тех пор, пока весь файл не будет считан в оперативную память, и, следовательно, не подходит для больших файлов, просто: curl_setopt($ch,CURLOPT_POSTFIELDS,file_get_contents($filename)); , но ... грубый эквивалент вашей команды curl с использованием хорошего метода:

$ch = curl_init ();
$filename = "audio-file1.flac";
$fileh = fopen ( $filename, 'rb' );
curl_setopt_array ( $ch, array (
        CURLOPT_USERPWD => "{username}:{password}",
        CURLOPT_HTTPHEADER => array (
                'Content-Type: audio/flac' 
        ),
        CURLOPT_POST => 1,
        CURLOPT_INFILE => $fileh,
        CURLOPT_INFILESIZE => filesize ( $filename ),
        CURLOPT_URL => "https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?timestamps=true&word_alternatives_threshold=0.9&keywords=%22colorado%22%2C%22tornado%22%2C%22tornadoes%22&keywords_threshold=0.5",
        CURLOPT_USERAGENT => 'libcurl/' . curl_version () ['version'] . '; php/' . PHP_VERSION 
) );
// curl_setopt ( $ch, CURLOPT_URL, '127.0.0.1:9999' );
curl_exec ( $ch );
fclose ( $fileh );
curl_close ( $ch );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...