这是我对while()循环的编码我想知道哪里有错误。
<?php
$asb = 'http://themonitors.net/sitelist.php';
// Example of my data = meetfreeman.com|back-capital.com|bitomine.com|thebillioncoins.com|
$myfile = fopen($asb, 'r') or die("Unable to open file!");
// Output one line until end-of-file
if ($myfile != '') {
while(!feof($myfile)) {
$string = fgets($myfile) ."<br><br>";
$matches = split('\|', $string );
$url = $matches[0];
echo $url;
}
} else {
echo "0 results";
}
fclose($myfile);
?>
我的while()循环只显示第一个数据(meetfreeman.com)
答案 0 :(得分:0)
看一下 - split()比explode()需要更多的资源。像这样使用它:
<强>更新强>
$asb = 'http://themonitors.net/sitelist.php';
$myfile = file_get_contents($asb);
if ($myfile != '') {
$urls = explode('|', $myfile);
foreach ($urls as &$url) {
echo $url;
}
} else {
echo "0 results";
}
答案 1 :(得分:0)
在split
函数之后,您会得到一个包含所有值的数组,但在$url
中,您只获取其中的第一项。所以echo $url
仅输出第一项。你想要打印所有$matches
数组吗?
您的代码将是:
$asb = 'http://themonitors.net/sitelist.php';
// Example of my data = meetfreeman.com|back- capital.com|bitomine.com|thebillioncoins.com|
$myfile = fopen($asb, 'r') or die("Unable to open file!");
// Output one line until end-of-file
if ($myfile != '') {
while(!feof($myfile)) {
$string = fgets($myfile) ."<br><br>";
$matches = split('\|', $string );
foreach($matches as $matche) {
echo $matche . "\n";
}
}
} else {
echo "0 results";
}
fclose($myfile);
答案 2 :(得分:0)
如果您的所有数据都在一行中,请尝试使用其他方法。
$data = file_get_contents($file)
$data = explode('|',$data);
if(!empty($data)){
(...)
}else{
echo '0 results';
}