Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在上载文件之前删除特殊字符_Php_String - Fatal编程技术网

Php 在上载文件之前删除特殊字符

Php 在上载文件之前删除特殊字符,php,string,Php,String,使用下面的代码,我通过html页面上的表单获得了一个图像,对其进行了一些剪切,并向其中添加了另一个图像,它工作得非常完美 我从html表单中获取的图像名称中的特殊字符有问题 总之,在你上传、裁剪图片、移动它们等之前,我必须先处理它们的名字。。。删除空格、删除重音符号等 我试图使用一些函数,但没有成功。。有人能帮忙吗 这是我的代码: <?php require( "./lib/WideImage.php"); // Example of accessing data for a newl

使用下面的代码,我通过html页面上的表单获得了一个图像,对其进行了一些剪切,并向其中添加了另一个图像,它工作得非常完美

我从html表单中获取的图像名称中的特殊字符有问题

总之,在你上传、裁剪图片、移动它们等之前,我必须先处理它们的名字。。。删除空格、删除重音符号等

我试图使用一些函数,但没有成功。。有人能帮忙吗

这是我的代码:

<?php

require( "./lib/WideImage.php");

// Example of accessing data for a newly uploaded file
$fileName = $_FILES["uploaded_file"]["name"]; 
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
// Path and file name
$pathAndName = "cartelas/cart".$fileName;
// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($fileTmpLoc, $pathAndName);
// Evaluate the value returned from the function if needed


$image = WideImage::load($pathAndName);

$unh = WideImage::load("unh11.png");

$crop1 = $image->crop("25", "50", 111, 132);


$out1 = $crop1->merge($unh,'middle','middle');

$pathAndName1 = "unha-1-".$fileName;

$crop1->saveToFile('./cartelas/estampa'.$pathAndName1);

$out1->saveToFile('./cartelas/'.$pathAndName1);

echo "Imagens geradas:<BR>";
echo "<img src=./cartelas/estampa$pathAndName1><img src=./cartelas/$pathAndName1>";
?>


谢谢大家!

如果您想在php端执行此操作,可以使用文件名执行任何操作。如果您不必使用完全相同的名称,可以使用rawurlencode()或base64_encode();甚至是名称中的md5()哈希。这应该可以解决奇怪名称或特殊字符的问题


如果您需要存储所有这些文件,您可以执行以下操作:
$newfilename=md5($filename)。'.\。uniqid()因此它们将是唯一的。您还可以添加用户id或类似的内容。

我单击Maniac如果您这样做,它将失去扩展名!所以,你应该

<?php
$ext=pathinfo($_FILES["file1"]["name"], PATHINFO_EXTENSION);
$fileName=md5($fileName);
$fileName="$fileName.$ext";
?>


Try
$newStr=preg\u replace(“/^[a-zA-Z0-9]*/”,“\uu”,$str)
将用下划线替换任何非字母数字。如果同时上载两个同名的不同文件,会发生什么情况?