【问题标题】:php / curl: delete cookie created with CURLOPT_COOKIEJARphp / curl:删除使用 CURLOPT_COOKIEJAR 创建的 cookie
【发布时间】:2012-01-18 11:12:49
【问题描述】:

大多数 php / curl 示例建议创建 curl cookie,我正在使用其中一个来爬网。 这是脚本http://www.php.net/manual/en/ref.curl.php#93163,下面是相关摘录:

$url = str_replace( "&", "&", urldecode(trim($url)) );

$cookie = tempnam ("/tmp", "CURLCOOKIE");
$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );    # required for https urls
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ( $ch );

现在我注意到 /tmp 中有 3 GB 由 php 创建的 curl cookie 文件。

我的印象是这会自动清除,是否可以从 php / curl 执行此操作?

【问题讨论】:

    标签: php cookies curl


    【解决方案1】:

    首先必须是unset,然后是$ch,然后您应该调用@unlink 命令。

    【讨论】:

    • 我遇到了同样的问题,发现我无法取消链接文件。经过一些实验,我发现在调用 unlink() 删除 cookie jar 文件之前必须调用 curl_close($ch)。也许 unset($ch) 也会导致 curl 句柄被关闭?
    【解决方案2】:

    您可以delete 文件。

    【讨论】:

    • 但是只能在调用 curl_close($ch) 后删除文件。 Yousha Aleayoub 在他的回答中报告说 unset($ch) 也将允许它们被删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2012-10-21
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多