在PHP中组合三个变量

时间:2013-06-15 05:28:21

标签: php variables

我试图更改上传的jpg的文件名,然后根据以下内容重命名,但它不起作用。

$myfile = ( $_FILES['image']['name']);
$myfile = str_replace("'", '', $myfile);
$myfile = str_replace('&', '', $myfile);
$myfile = str_replace('%', '', $myfile);
$myfile = str_replace('!', '', $myfile);
$myfile = str_replace('#', '', $myfile);
$myfile = str_replace(' ', '', $myfile);

$random = mt_rand(22, 32);
$cj = "cj-";
$myfile = $cj . $random . $myfile;

如果我注释掉它的最后一行,那么3个变量的组合似乎是问题所在。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您的代码没有问题

由于我找不到任何东西,我决定自己尝试代码,看看输出是什么

这是我使用的代码:

<?php
$myfile = "#'&!#  Some_file";
$myfile = str_replace("'", '', $myfile);
$myfile = str_replace('&', '', $myfile);
$myfile = str_replace('%', '', $myfile);
$myfile = str_replace('!', '', $myfile);
$myfile = str_replace('#', '', $myfile);
$myfile = str_replace(' ', '', $myfile);

$random = mt_rand(22, 32);
$cj = "cj-";
$final_file_name = $cj . $random . $myfile;

echo 'Random: '.$random."\n";
echo 'Cj: '.$cj."\n";
echo 'MyFile: '.$myfile."\n";
echo 'Final name: '.$final_file_name."\n";
?>

输出:

Random: 25
Cj: cj-
MyFile: Some_file
Final name: cj-25Some_file

基本上,它工作得很好。没有错。

演示:Here

由于我们无法找出问题所在以及为什么您的代码无效,我们会尝试不同的应用

$random = mt_rand(22,32);
$cj = 'cj-';
$final_file_name = $cj;
$final_file_name .= $random;
$final_file_name .= $myfile;

答案 1 :(得分:0)

$myfile = $cj . strval($random) . $myfile;

答案 2 :(得分:0)

在我的例子中,我正在检查文件是否存在(我唯一能想到的是失败)。空白屏幕是解析器错误(通常与语法相关)。我也缩短了代码:

if(!empty($_FILES['image']['name'])){
   $myfile = $_FILES['image']['name'];
   $patterns = array("'","&","%","!","#"," ");
   $myfile = "cj-".mt_rand(22, 32).str_replace($patterns, '', $myfile);
   echo $myfile;
} else {
   echo "Empty Filename.";
}