当allow_url_fopen关闭时,用PHP中的cUrl替换file()

时间:2013-08-30 09:04:18

标签: php curl

我的脚本有问题。问题是运行脚本的服务器禁用了allow_url_fopen。

但是我需要这个,因为我的脚本运行正常。

$lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

我只是找不到用cUrl替换/重新创建此解决方案的正确解决方案。 问题是file()创建了一个数组,而我的php-Knowledge还不足以将其更改为以数组形式返回$lines

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $filename);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$lines = curl_exec ($ch);
curl_close ($ch);

2 个答案:

答案 0 :(得分:0)

您可以使用explode()将字符串转换为数组:

$string = curl_exec($ch);
$lines = explode("\n", $string);

要忽略空行,您可以使用array_filter()

$lines = array_filter($lines, function($x) { return $x !== '' ; });

当他们不curl时,他们会允许allow_url_fopen,这是令人惊讶的。

答案 1 :(得分:0)

您可以使用explode()函数将字符串拆分为子字符串,而不是保留分隔符。然后你只需要过滤掉空行。

// Replace Windows (CRLF) newlines with UNIX (LF) newlines
$text = str_replace("\r\n", "\n", $text);

// Split the string at each LF, keeping only non-blank lines
$lines = array();
foreach ( explode( "\n", $text ) as $line ) {
    if ( $line !== '' ) {
        $lines[] = $line;
    }
}