【问题标题】:Reading an image in PHP using only part of its file name仅使用部分文件名在 PHP 中读取图像
【发布时间】:2012-07-14 11:56:38
【问题描述】:

我试图通过仅获取其名称的一部分来读取存储在 PHP 目录中的图像。图片命名如下,

AT-1410f1654.jpg
AT-1410_1655.jpg
AT-1410_1656.jpg
AT-1410_1657.jpg
AT-1410_1658.jpg
AT-1410_1659.jpg

我已经尝试了下面的代码,但是即使我使用 PHP substr() 方法它也不起作用,但它也不起作用,

    $dbImage=$row["pref"];
    $imageName=$dbImage;
    $extension=".jpg";
    $filename=$imageName.$extension;
    echo "$filename+<img src='proppics/$filename'>"; 

关于如何做到这一点的任何想法

完整代码

$limit=10; 
$con=mysql_connect("localhost","root","");
mysql_select_db("movedb") or die("Unable to select database");
$query="select * FROM properties where `name`='Beata Grande 1' & `catergory`='Villas'& `price`=202800 & `area`='Arenas'& `bedrooms`=2 & `region`='Axarquia'";
$numresults=mysql_query($query,$con);
$numrows=mysql_num_rows($numresults);
$result = mysql_query($query) or die("Couldn't execute query");
echo "<center>";
echo "<p>You searched for: &quot;" . $properties . "&quot;</p>";
echo "<form name=payment action='properties_details.php'>";
echo "Results <br>";
  while ($row= mysql_fetch_array($result)) {
    $id=$row['id'];
    $pid=$row['pref'];
    // Retrieve the balance database fields

      echo "<p>Property ID &nbsp".$pid;
      echo "<br> <p> Name &nbsp";
      echo $row["name"];
      echo "<br>  Properties &nbsp";
      echo $row["catergory"];
      echo "<br> Description &nbsp";
    // Print results
 echo "<br>";
 echo "<input type=submit name=btnbuy value=MoreDetails> "; 

【问题讨论】:

  • 我没有看到文件名和代码之间有任何联系,也没有看到任何循环...您需要提供更多详细信息/代码
  • 我试图创建一个 for 循环,但不知道如何正确的技术
  • 您还必须告诉我们这些变量中存储了什么。我猜不出$dbImage 包含什么。为什么要创建两个包含$row["pref"]的变量?
  • 图片读取码在最后

标签: php image directory


【解决方案1】:

首先,使用scandir列出您目录中的所有文件

http://php.net/manual/en/function.scandir.php

然后使用strpos检查现有前缀

http://php.net/manual/en/function.strpos.php

$dir    = 'propix';
$files  = scandir($dir);
$prefix = '1410';
foreach($files as $file) {

    if(strpos($prefix) !== FALSE) { //here you are supposed to add more...

        echo $file;
    }
}

【讨论】:

  • 它在这一行给我一个错误 if(strpos($prefix) !== FALSE) { 错误是 strpos() 预计至少有 2 个参数给定。根据您提供的 URL,我应该将其用作 strpos($filename,$prefix)
  • 我认为如果有办法自动读取前缀的值(目前它存储在变量中),它可以被排序
【解决方案2】:

glob怎么样?

您的问题不够清楚,无法提供更全面的答案

【讨论】:

    【解决方案3】:

    我不能 100% 确定您要达到的目标。 但是如果你想在“_”之后或之前只选择文件名的一部分,你可以使用 PHPsexplode() 函数。

    在你的情况下写作:

    print explode("_", $dbImage);
    

    会有类似这样的输出:

    Array(
        [0] => AT-1410
        [1] => 1655.jpg
    )
    

    【讨论】:

      猜你喜欢
      • 2013-09-08
      • 1970-01-01
      • 2011-01-29
      • 2014-05-17
      • 1970-01-01
      • 2012-01-30
      • 2012-11-18
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多