Я работаю над зеркалом Raspberry Pi, которое будет контролироваться с помощью речи. Если команда set не найдена, она найдет ответ в Wolfram Alpha.
Сценарий написан на php с дополнениями из других вопросов здесь, но проблема в том, что он не потребует ввода с пробелами. Я пробовал foo + bar и foo% 20bar, но ни один из них не сработает.
Сценарий:
<?php
$input = $_GET["input"];
$url = "http://api.wolframalpha.com/v2/query?input=" . $input . "&appid=XXXXX&format=plaintext&podindex=2";
echo $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
ob_start();
curl_exec($ch);
curl_close($ch);
$contents = ob_get_contents();
ob_end_clean();
function get($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
echo get($contents,'<plaintext>','</plaintext>');
?>
Скрипт работает нормально без пробелов, например:
1 day | 86400 seconds | 1440 minutes | 24 hours
3.141592653589793238462643383279502884197169399375105820974
2:49:13 pm BST | Tuesday, March 29, 2016
Любая помощь будет оценена, так как я мусор с такими проблемами форматирования 🙂
РЕДАКТИРОВАТЬ: просматривая код, я не знаю, почему я не просто использовал $contents = file_get_contents($url);
вместо этого очень длинного пути, но он по-прежнему не будет принимать пробелы: /
Задача ещё не решена.
Других решений пока нет …