【问题标题】:How to correctly order with PHP glob()?如何使用 PHP glob() 正确排序?
【发布时间】:2017-03-04 11:43:33
【问题描述】:

我正在使用它来获取具有特定通配符名称的所有图像:

<?php
$images = glob("/var/www/user/html/images/".$row['id']."@*.jpg");
foreach($images as $image) {
echo "<img src=\"".str_replace("/var/www/user/html/images/", "http://www.example.com/images/", $image)."\">\n";
?>

如果有例如与 glob() 输出中的模式匹配的四张图像是:

<img src="http://www.example.com/images/543@1.jpg">
<img src="http://www.example.com/images/543@2.jpg">
<img src="http://www.example.com/images/543@3.jpg">
<img src="http://www.example.com/images/543@4.jpg">

它们的顺序正确:543@1.jpg, 543@2.jpg, 543@3.jpg, 543@4.jpg

但是如果有例如12张图片输出是这样的:

<img src="http://www.exapmple.com/images/543@10.jpg">
<img src="http://www.exapmple.com/images/543@11.jpg">
<img src="http://www.exapmple.com/images/543@12.jpg">
<img src="http://www.exapmple.com/images/543@1.jpg">
<img src="http://www.exapmple.com/images/543@2.jpg">
<img src="http://www.exapmple.com/images/543@3.jpg">
<img src="http://www.exapmple.com/images/543@4.jpg">
<img src="http://www.exapmple.com/images/543@5.jpg">
<img src="http://www.exapmple.com/images/543@6.jpg">
<img src="http://www.exapmple.com/images/543@7.jpg">
<img src="http://www.exapmple.com/images/543@8.jpg">
<img src="http://www.exapmple.com/images/543@9.jpg">

如您所见,它的排序不正确:543@10.jpg, 543@11.jpg, 543@12.jpg, 543@1.jpg, 543@2.jpg, 543@3.jpg, […]

我能做些什么来解决它?有什么想法吗?

【问题讨论】:

  • natsort($images)

标签: php image glob


【解决方案1】:

您可以先对数组进行排序,然后再对其进行迭代。使用sort()

$images = glob("/var/www/user/html/images/".$row['id']."@*.jpg");

sort($images,2); // 2 for sort as string

foreach($images as $image) {
    echo "<img src=\"".str_replace("/var/www/user/html/images/", "http://www.example.com/images/", $image)."\">\n";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多