[英]PHP cURL vs Linux cURL
我试图从Linux终端cURL读取Google翻译数据:
curl -i --user-agent "" -d "sl=en" -d "tl=sk" --data-urlencode "text=hi" https://translate.google.com
它返回了整个页面,在这里我可以看到翻译结果。 结果在一个HTML元素中。 但是,当我尝试使用PHP的cURL进行测试时,它没有输出相同的HTML,因此无法找到翻译结果。
$data = [
"sl" => "en",
"tl" => "sk",
"text" => urlencode("hi");
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, "https://translate.google.com");
curl_setopt($ch,CURLOPT_POST, count($data));
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_HEADER, true);
curl_setopt($ch,CURLOPT_USERAGENT, "");
curl_exec($ch);
谢谢您的帮助,如何在PHP中返回与Linux cURL相同的结果。
使用$response = curl_exec($ch);
$data = [
"sl" => "en",
"tl" => "sk",
"text" => urlencode("hi")
];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, "https://translate.google.com");
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);
curl_setopt($ch,CURLOPT_HEADER, true);
curl_setopt($ch,CURLOPT_USERAGENT, "");
$respond = curl_exec($ch);
echo $respond;
curl_close($ch);
如果您只是在寻找翻译结果,那么您所要做的就是使用Google翻译API,并且使用此API非常容易。
此API将为您返回一个txt文件,您可以在PHP中阅读该文件,并且可以从那里获取翻译结果。
如果您查看translate.google.com的源代码,则可以在此处找到:
f.src=c;
c
是javascript的来源。 现在, c
隐藏在该源代码中,这很难理解,可能要花费很多时间。 google.translate.com返回的数据显然是通过Ajax请求发送的,该请求可能在其他无法直接查看的javascript文件中,可能为f.src=c;
否则可能是其他。 因此,页面上没有直接结果或翻译,translate.google.com,因此,PHP的卷曲无法为您提供该页面的翻译,因为该页面上的翻译是通过其他位置的ajax请求(而其他位置是我上面提到的google API),该页面上没有实际的翻译内容,您可以将其直接读取为字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.