Php md5无法转换文件名实体
我无法将文件名转换为md5 我有文件名: 20072437_60-0001#12-07-2013^11.41.23.jpg 但如果文件名中有“#”和“^”则不起作用。 如何在不删除“#”和“^”的情况下使其工作 我的代码:Php md5无法转换文件名实体,php,md5,Php,Md5,我无法将文件名转换为md5 我有文件名: 20072437_60-0001#12-07-2013^11.41.23.jpg 但如果文件名中有“#”和“^”则不起作用。 如何在不删除“#”和“^”的情况下使其工作 我的代码: if ($inline === true) { $thumbname = md5($file).'.jpg'; } else { $thumbname = md5($file).'-big.jpg'; } 下面的代码非
if ($inline === true) {
$thumbname = md5($file).'.jpg';
} else {
$thumbname = md5($file).'-big.jpg';
}
下面的代码非常适合我
<?php
$inline = true;
$file = '20072437_60-0001#12-07-2013^11.41.23.jpg';
if ($inline === true) {
$thumbname = md5($file).'.jpg';
} else {
$thumbname = md5($file).'-big.jpg';
}
echo $thumbname;
另一种方法(我想您正在寻找)
是通过创建一个函数来获取最后一个小数位之前的所有内容:-
function reverse_strrchr($haystack, $needle)
{
$pos = strrpos($haystack, $needle);
if($pos === false) {
return $haystack;
}
return substr($haystack, 0, $pos);
}
因此,最终结果如下所示:-
<?php
function reverse_strrchr($haystack, $needle)
{
$pos = strrpos($haystack, $needle);
if($pos === false) {
return $haystack;
}
return substr($haystack, 0, $pos);
}
$inline = false;
$file = '20072437_60-0001#12-07-2013^11.41.23.jpg';
$newFile = reverse_strrchr( $file, '.' );
if ($inline === true) {
$thumbname = md5($newFile).'.jpg';
} else {
$thumbname = md5($newFile).'-big.jpg';
}
echo $thumbname;
?>
如果$inline=false:-
0f068b6cd39ea23fc73c5c51ea08da8f-big.jpg
您可以看到一个示例@我很好奇为什么首先允许使用这些字符。您遇到了什么错误?请说明错误您正在尝试使用扩展名md5文件,然后添加扩展名,而您应该在md5中键入拇指名称。这就是我认为这里的问题所在。那么,我说得对吗?您的问题不清楚。我们还需要知道什么是
$file
和$inline
。由于不清楚,我投票决定关闭。下面给了你一个答案,所以你必须问他们。我已经离开了,因为你没有回答,或者你留下的问题只是在将来的某个日期返回。我相信它是有效的,但这是md5'与文件“扩展名”,然后输出md5与一个额外的扩展名,不确定这是否是他们想要在这里。可能是他们的代码失败的原因。我认为他们需要把问题说得更清楚一点,代码按原样工作。哦,我完全同意。
0f068b6cd39ea23fc73c5c51ea08da8f.jpg
0f068b6cd39ea23fc73c5c51ea08da8f-big.jpg