Php 当文件不存在时,我需要停止循环';不存在
我在我的Php 当文件不存在时,我需要停止循环';不存在,php,loops,Php,Loops,我在我的/images/目录中有一组相关图像,依次命名为image1.jpg、image2.jpg、image3.jpg等 我正在尝试使用PHP使用循环输出标记中的图像。但是由于图像的数量不同,我需要它在到达目录中的最后一个图像文件时停止 假设我有5个图像,我希望它只输出: <img src="images/image1.jpg"> <img src="images/image2.jpg"> <img src="images/image3.jpg"> <
/images/
目录中有一组相关图像,依次命名为image1.jpg、image2.jpg、image3.jpg等
我正在尝试使用PHP使用循环输出标记中的图像。但是由于图像的数量不同,我需要它在到达目录中的最后一个图像文件时停止
假设我有5个图像,我希望它只输出:
<img src="images/image1.jpg">
<img src="images/image2.jpg">
<img src="images/image3.jpg">
<img src="images/image4.jpg">
<img src="images/image5.jpg">
对于这种情况,有一个名为
file\u exists()
的函数。怎么办
$dir='/images';
$imgs=scandir($dir);
foreach($imgs作为$img)
{
如果($img!='.&&$img!=''..'))
{
回声';
}
}
此代码段将生成所需的结果:
$i = 1;
while(file_exists('./images/image' . $i . '.jpg')){
echo '<img src="images/image' . $i . '.jpg">';
$i++;
}
$i=1;
而(文件_存在('./images/image'.$i.'.jpg')){
回声';
$i++;
}
要回答您的问题:
for ( $i=1; $i<100; $i++ ) {
if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
echo '<img src="http://localhost/images/image' . $i . '.jpg">';
} else {
break;
}
}
对于($i=1;$iDepending on my application),我通常更喜欢使用is_file()。file_exists()对于目录也将返回true。抱歉,伙计们,在edit中添加了我当前的方法。在else
子句中,添加一个break
。但是,如果您事先不知道图像的数量,则使用while
循环更好。或者甚至更好,而不是检查文件是否存在,而是检查文件是否不存在并断开这样,如果(文件_存在(…){…}),就不需要else
else break;
很好地抓住了这句话。不幸的是,似乎文件_存在
不理解URL,所以我有更大的问题。明白了。我想问你想做什么是我的下一个问题。如果你试图连接到远程服务器,你可以使用cURL远程抓取它们。但是如果你可以在在同一台服务器上,您可以像其他人建议的那样,用一个或scandir替换for循环。我打算建议类似的东西。只需扫描现有文件并输出这些文件。
$i = 1;
while(file_exists('./images/image' . $i . '.jpg')){
echo '<img src="images/image' . $i . '.jpg">';
$i++;
}
for ( $i=1; $i<100; $i++ ) {
if ( file_exists('http://localhost/images/image' . $i . '.jpg') ) {
echo '<img src="http://localhost/images/image' . $i . '.jpg">';
} else {
break;
}
}
<img src="images/image1.jpg'">
<img src="images/image2.jpg'">
<img src="images/image3.jpg'">
<img src="images/image4.jpg'">
<img src="images/image5.jpg'">