PHP语法相当于SQL%
我有一个文件夹PHP语法相当于SQL%,php,mysql,sql,Php,Mysql,Sql,我有一个文件夹unit\u images,里面满是带有随机名称的图像,除了它们的前缀对应于数据库表中的主键 1_4534534fw4.jpg 243534TW4T45.png 你明白我的意思了。我正在使用YoxView查看图像,并正在执行以下操作: <?php $query = "SELECT id FROM images WHERE unit = ".$_GET['id'].""; $result = mysqli_query($con, $query); echo '<div c
unit\u images
,里面满是带有随机名称的图像,除了它们的前缀对应于数据库表中的主键
1_4534534fw4.jpg
243534TW4T45.png
你明白我的意思了。我正在使用YoxView查看图像,并正在执行以下操作:
<?php
$query = "SELECT id FROM images WHERE unit = ".$_GET['id']."";
$result = mysqli_query($con, $query);
echo '<div class="yoxview">';
while ($row = mysqli_fetch_assoc($result))
{
echo '<img src="unit_images/01.jpg" alt="First" title="First image" />
<img src="unit_images/02.jpg" alt="Second" title="Second image" />'
}
echo '</div>';
?>
glob("unit_images/<YOUR_PRIMARY_KEY>_*.{png,jpg}", GLOB_BRACE);
我想列出我的文件夹unit\u images
中的图像,该单元就是当前显示的单元。我只是不知道如何告诉PHP文件名。我想在SQL中执行类似于1%
的操作。这有意义吗?因为我不知道文件名的其余部分是什么样子,所以我只需要告诉php这不重要 与用于文件的SQL的%
通配符最接近的等价物是shell的*
通配符,它在php中通过提供。您可以按如下方式迭代其结果:
foreach (glob("unit_images/1_*.jpg") as $filename) {
echo '<img src="unit_images/' . htmlspecialchars(basename($filename))
. '" />';
}
foreach(glob(“unit_images/1_*.jpg”)作为$filename){
回声';
}
我的建议是将文件的全名存储在一列中,这样您就可以直接引用它,而不必在文件系统中搜索匹配的名称
话虽如此,您可以使用PHP函数搜索文件
也许你可以这样做:
<?php
$query = "SELECT id FROM images WHERE unit = ".$_GET['id']."";
$result = mysqli_query($con, $query);
echo '<div class="yoxview">';
while ($row = mysqli_fetch_assoc($result))
{
echo '<img src="unit_images/01.jpg" alt="First" title="First image" />
<img src="unit_images/02.jpg" alt="Second" title="Second image" />'
}
echo '</div>';
?>
glob("unit_images/<YOUR_PRIMARY_KEY>_*.{png,jpg}", GLOB_BRACE);
glob(“单位图像/{png,jpg}”,glob\u括号);
如果我理解正确,您希望获得具有特定前缀的目录中的项目列表。
步骤1(使用sandir()
确定目录中的项目):
步骤2(消除不需要的图像名称):
for($i=0;$iSo)我想您没有将文件字符串存储在数据库中的id
部分之后,对吗?您的$query
易受攻击。为了您自身的安全,您需要在激活此代码之前修复此问题。