当allow_url_fopen关闭时,在PHP中将file()替换为cUrl

当allow_url_fopen关闭时,在PHP中将file()替换为cUrl,php,curl,Php,Curl,我对脚本有问题。问题是脚本应该运行的服务器已禁用allow\u url\u fopen 但是,我需要这个脚本才能正常运行 $lines=file($filename,file_IGNORE_NEW_line | file_SKIP_EMPTY_line) 我只是没有找到一个合适的解决方案来用cUrl替换/重新创建这个解决方案。 问题是file()创建了一个数组,而我的php知识还不足以将其转换为将$lines作为数组返回 $ch = curl_init(); curl_setopt ($ch,

我对脚本有问题。问题是脚本应该运行的服务器已禁用allow\u url\u fopen

但是,我需要这个脚本才能正常运行

$lines=file($filename,file_IGNORE_NEW_line | file_SKIP_EMPTY_line)

我只是没有找到一个合适的解决方案来用cUrl替换/重新创建这个解决方案。 问题是file()创建了一个数组,而我的php知识还不足以将其转换为将
$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);

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

要忽略空行,可以使用
array\u filter()


令人惊讶的是,他们会允许
curl
而不允许url\fopen

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

要忽略空行,可以使用
array\u filter()

令人惊讶的是,当它们不允许url打开时,它们会允许
curl
,,您可以使用该函数将字符串拆分为子字符串,而不保留分隔符。然后你只需要过滤掉空行

// 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;
    }
}
可以使用该函数将字符串拆分为子字符串,而不保留分隔符。然后你只需要过滤掉空行

// 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;
    }
}

然后检查是否有空行谢谢回答。在添加参数“curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0)”后工作curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);'对于SSL连接,我也很好奇为什么允许curl而不允许file。谷歌搜索把我带到这里:啊,这很有道理。不是他们不想让你访问URL,而是他们想让你区分你是在访问文件(使用fopen和friends)还是在访问URL(使用CURL),而不是混合使用这两种模式。是的,我也是这样理解的;)我在服务器上运行Typo3没有问题,这也为扩展repo建立了远程连接。然后检查是否有空行Hanks以获得答案。在添加参数“curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0)”后工作curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);'对于SSL连接,我也很好奇为什么允许curl而不允许file。谷歌搜索把我带到这里:啊,这很有道理。不是他们不想让你访问URL,而是他们想让你区分你是在访问文件(使用fopen和friends)还是在访问URL(使用CURL),而不是混合使用这两种模式。是的,我也是这样理解的;)我在服务器上运行的是Typo3,没有任何问题,这也为扩展repo提供了远程连接工作起来很有魅力;)
// 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;
    }
}