1

这个可能有点笨拙。

我在不同的文件夹中有两组文件:SET 1:

  • 名人1.png
  • 名人2.png
  • 名人3.png
  • 名人4.png
  • celeb5.png

ETC

用户选择一个图像(收音机),然后我将其设置为 url 上的 get 变量:

现在,我想匹配另一个文件。

在另一个文件夹中,我有一个这样的集合:

第 2 组:

  • 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

ETC

我想使用 GET 变量(即)celeb1.png,然后根据前 5 个字符选择相应文件的完整文件名。

换句话说,如果 $_GET['celebimg'] 是 'celeb1.png',我想将第二个变量(比如说 $overlay)设置为字符串 'celeb1-24_59_250_300.png'

关于如何实现这一目标的任何想法?

我显然可以进行切换,但这意味着每次上传新的名人图片时我都必须更新代码。

有没有动态的方法来实现这一点?

谢谢

JG

4

2 回答 2

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

于 2013-09-22T18:37:21.143 回答
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将是匹配文件的数组

您可以使用其他文件功能,例如scandirorreaddir等​​,但这些功能不会过滤掉文件,因此您必须这样做。

于 2013-09-22T18:34:09.947 回答