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