cURL远程调用的php while循环失败
长期用户,第一次发帖,感谢您的耐心等待 当通过cURL远程调用php代码时,除非我注释掉while循环,否则会失败,这当然会破坏代码读取文件的目的。对于我来说,fgets是正确的文件读取工具,因为该文件包含以换行符结尾的文本行 我使用$readWorks创建了一个稍微笨拙的构造,以帮助组合while和if子句,并在注释掉while循环时使代码能够工作cURL远程调用的php while循环失败,php,curl,Php,Curl,长期用户,第一次发帖,感谢您的耐心等待 当通过cURL远程调用php代码时,除非我注释掉while循环,否则会失败,这当然会破坏代码读取文件的目的。对于我来说,fgets是正确的文件读取工具,因为该文件包含以换行符结尾的文本行 我使用$readWorks创建了一个稍微笨拙的构造,以帮助组合while和if子句,并在注释掉while循环时使代码能够工作 <?php define( "IPDIRFILE", "path/to/ipfile.csv" ); // Lookup in standa
<?php
define( "IPDIRFILE", "path/to/ipfile.csv" ); // Lookup in standard file location as with local lookups
$readWorks = true;
$ipLookup = fopen( IPDIRFILE, "r" );
if ($ipLookup) {
// while ( $readWorks ) { // Uncomment this loop to produce failure
if (($ipline = fgets( $ipLookup )) !== false) {
echo "Got the line with fgets: " . $ipline . "<br>";
} else {
echo "Can't fgets the line<br>";
$readWorks = false;
}
}
//} // Ending brace
fclose( $ipLookup );
?>
下面是调用php的代码:
<?php
$varString = null;
$pgtCon = curl_init( 'http://domain/path/to/ipfinder.php' );
curl_setopt( $pgtCon, CURLOPT_CONNECTTIMEOUT, 30 );
curl_setopt( $pgtCon, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" );
curl_setopt( $pgtCon, CURLOPT_POST, true );
curl_setopt( $pgtCon, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $pgtCon, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $pgtCon, CURLOPT_FOLLOWLOCATION, 1 );
// The content immediately below merely provides something to POST
$ipGeolocRequest = array();
// IP addresses pushed to $ipGeolocRequest
foreach ( $ipGeolocRequest as $ipIdx => $ipVal ) { // construct POST data
$varString .= $ipIdx . "=" . $ipVal . "&";
}
$varString = substr($varString, 0, -1); // remove trailing ampersand
if (curl_setopt( $pgtCon, CURLOPT_POSTFIELDS, $varString )) {
$geoData = curl_exec( $pgtCon );
} else {
echo "Option set failed<br>";
}
curl_close( $pgtCon );
unset( $varString );
echo $geoData . "<br>";
?>
根据其他帖子,我已经确保在cURL调用之后POST字符串是未设置的。当通过浏览器地址栏在本地调用时,顶部的远程调用代码无论是否使用while循环都能完美地工作。我认为,这表明文件已正确打开并读取,而脚本在其他方面也可以正常工作
我是卷发新手,所以我肯定我错过了什么!对我来说,这也像是你错过了一些显而易见的事情-
为什么这个cURL调用会导致php while循环失败?while循环之前定义了$readWorks吗?因为我看不见。是的,它不见了。我在测试环境中的while循环之前添加了它,然后进行了检查,循环仍然失败。现在我将尝试编辑我的原始帖子…谢谢你的关注。没问题,但这就是我所注意到的,我希望你能得到需要的答案!顺便说一句,您不应该在CSV文件上使用fgets,最好使用fgetcsv。。。在任何情况下,while循环失败是什么意思?