这个可能有点像。
我在单独的文件夹中有两组文件: 第1集:
等
用户选择一个图像(无线电)然后我将其设置为url上的get变量:
现在,我想匹配另一个文件。
在另一个文件夹中,我有一个这样的集合:
SET 2:
等
我想使用GET变量(即)celeb1.png,然后根据前5个字符选择相应文件的完整文件名。
换句话说,如果$ _GET ['celebimg']是'celeb1.png',我想设置第二个变量(比如说$ overlay)到字符串'celeb1-24_59_250_300.png'
关于如何实现这一点的任何想法?
我显然可以进行切换,但这意味着每次上传新的名人图片时我都必须更新代码。
有没有动态的方法来实现这个目标?
由于
JG
答案 0 :(得分:1)
你可以尝试这样的事情。既然我们还没有看到你到目前为止所尝试的内容。这只是一个例子。但是代码已经过测试。
<?php
$file='celeb3.png'; // Here is where you will get the param $_GET['set1']
$set2=array(
'celeb1-24_59_250_300.png',
'celeb2-35_67_200_250.png',
'celeb3-54_87_300_400.png',
'celeb4-88_98_250_350.png',
'celeb5-87_43_300_400.png'
);
$set1 = explode('.',$file);
//echo $set1[0];//celeb3
foreach($set2 as $val)
{
if($set1[0]==substr($val,0,strlen($set1[0])))
{
echo $val;//celeb3-54_87_300_400.png
break;
}
}
输出:celeb3-54_87_300_400.png
答案 1 :(得分:0)
使用glob
搜索文件夹
//Get the GET variable
$cimg = $_GET['celebimg'];
//split it so we can just get the name without extention
$nameparts = explode(".",$cimg);
//glob will try to find matches to the string passed
$matches = glob("/dir/path/{$nameparts[0]}-*.png");
$matches
将是一个匹配文件数组
您可以使用其他文件功能,例如scandir
或readdir
等,但这些功能不会过滤掉文件,因此您必须这样做。