我正在为一个项目和其他开发人员创建一个基于PHP的GoogleWeb字体API。这个脚本几乎是一个,除了一个给我带来悲伤的方法。
这一问题:
我有一种方法,使用cURL将现有的JSON字符串替换为来自Google的当前副本。
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设置的所有选项,但都没有效果。
任何帮助都是非常感谢的!
发布于 2014-01-11 23:41:42
试一试:
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_SSL_VERIFYPEER => FALSE,更多信息:
库洛普斯夫 库洛普斯弗莱
https://stackoverflow.com/questions/21069063
复制相似问题