1

phpファイルのアップロードを介してサーバーにアップロードしているこのファイルがあります。

6;'!8.jpg

このコードを使用して、英数字以外の文字を削除しました。

$image1 = ereg_replace("[^A-Za-z0-9]", "", $_FILES["image"]["name"]);

それは問題なく動作しますが、このように私の画像を返します

68jpg

これを次のように返すための最良の方法は何でしょうか68.jpg

何か案は?

4

3 に答える 3

2

ereg/eregiは使用しないでください。これらの関数は非推奨です。代わりにPCRE関数を使用してください。

この方法を試してください

$image1 = preg_replace("#[^a-z0-9\.]#i", null, $_FILES["image"]["name"]);

于 2012-05-09T15:21:43.953 に答える
0

代わりにこのコードを試してください:

$image1 = ereg_replace("[^A-Za-z0-9\\.]", "", $_FILES["image"]["name"]); 

ただし、 PHP関数はパフォーマンスが高い(非推奨ではない)ため、実際にはPHP関数preg_の代わりに使用する必要があります。ereg_

于 2012-05-09T15:16:21.410 に答える
-1

PHPのpathinfo($ _ IMAGE ["image"] ["name"])コマンドを使用して、ファイル名のベースパス、ベース名、およびファイル拡張子を分解できます。次に、ベース名に対して検索と置換を実行し(@John Condeが推奨するように)、ベース名とファイル拡張子を連結して元に戻すことができます。

于 2012-05-09T15:27:43.533 に答える