我正在为项目和其他开发人员创建基于PHP的Google Webfont API。这个脚本几乎是一个,除了一个让我感到悲伤的方法。
我有一个方法,使用cURL 用现有的Google副本替换现有的JSON字符串。
public function refreshFontList() {
if(empty($this->publicKey)) {
throw new Exception("API key cannot be empty", 1);
}
// cURL support is needed, test for cURL support before firing
if(!in_array("curl", get_loaded_extensions())) {
if(!init_get("allow_url_fopen")) {
die("Cannot get remote file");
}
} else {
echo "From Google\n";
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://www.googleapis.com/webfonts/v1/webfonts?key=" . $this->publicKey,
CURLOPT_BINARYTRANSFER => TRUE, // for < PHP 5.1.3
CURLOPT_FAILONERROR => TRUE,
CURLOPT_FRESH_CONNECT => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE
)
);
var_dump(curl_exec($ch)); // shows as FALSE
curl_close($ch);
}
}
由于某些我不知道的原因,ch_exec()
函数无法捕获对Google调用的API输出,只是输出boolean(false)
作为输出。为了更好地理解项目的范围,以下是完整的课程:http://tny.cz/d894e185。
...
$output = curl_exec($ch);
var_dump($output); // still false
...
和
$this->setFontList(ch_exec($ch));
此外,我还禁用了我为curl_setopt_array
设置的所有选项,但没有用。
非常感谢任何帮助!
答案 0 :(得分:2)
尝试使用:
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_SSL_VERIFYPEER => FALSE,
更多信息: