这是我的卷曲功能。它适用于我的本地 Windows 机器。但是在服务器上它无法保存 cookie 文件(没有错误,只是没有出现 cookie 文件,程序失败。)。权限似乎是有序的,因为我能够将 file_put_contents() 放到我试图保存 cookie 的文件夹中。无法创建 cookie 文件的可能原因有哪些?有人可以列出它们,以便我可以一一检查。或欢迎任何其他建议。
求救
谢谢
define('DS',DIRECTORY_SEPARATOR) ;
if (DS == '\\') {
define ('CKFILE',"C:/cookiefile.txt" );
}
else {
define ('CKFILE',"/home/user/public_html/sitename.com/cookiefile.txt" );
}
function curl_fetch($url, $save_cookies = true, $load_cookies = true, $post_data = false, $https = false) {
file_put_contents("/home/username/public_html/sitename.com/testfile.txt", 'writable file') ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // Target site
if ($load_cookies) curl_setopt($ch, CURLOPT_COOKIEFILE, CKFILE);
if ($save_cookies) curl_setopt($ch, CURLOPT_COOKIEJAR, CKFILE);
if ($https) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");
if ($post_data) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // Follow redirects
curl_setopt($ch, CURLOPT_MAXREDIRS, 4); // Limit redirections to four
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Return in string
$page = curl_exec($ch);
//echo $page ;
curl_close($ch);
return $page;
}