1

我的脚本有问题。问题是应该运行脚本的服务器禁用了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);
4

2 回答 2

1

您可以使用以下方法将字符串转换为行数组explode()

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

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

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

curl当他们不允许时,他们会允许,这有点令人惊讶allow_url_fopen

于 2013-08-30T09:06:49.713 回答
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;
    }
}
于 2013-08-30T09:25:14.817 回答