2016-08-07 33 views
1

I-Code in PHP, die Datei mit dem Namen erstellen, die Benutzereingaben wie untenwie nicht Englisch Zeichen mit PHP Umgang

html

<form method="post"> 
    <input type="text" name="file"> 
    <input type="submit"> 
</form> 

php

$file = $_POST['file'].'.php'; 
$f = fopen($file, 'w'); 
fclose($f); 

das Problem auftreten, wenn Benutzer verwenden nicht-englische Zeichen Beispiel Benutzereingabe =

resault = ظ ... ط ± ط§ظ ‡ ظ,ظ-ط§ظ „طھط§ظٹطھظ † ط. Php

aber es sollte = sein اللغة العربيه. Php

+0

Problem könnte mit Dateisystem sein. Welches Dateisystem benutzen Sie, oder wenn Sie das nicht wissen, zumindest Ihr Betriebssystem? –

+0

mein Betriebssystem ist Windows, ich weiß nicht, was ist mein Dateisystem –

Antwort

0

Dateien mit nicht schaffen Der Versuch, Englische Dateinamen können ziemlich hart sein.

Die einfachste Lösung ist, solche Dateinamen überhaupt nicht zu verwenden, sondern alle Dateinamen zu codieren, z. mit urlencode:

$filename = $_POST['file'].'.php'; 
$encoded_filename = urlencode($filename); 
$f = fopen($encoded_filename, 'w'); 
fclose($f); 

Dies wird nicht englische Zeichen beeinflussen und ermöglicht Dateinamen zu schaffen jede Sprache.

Beachten Sie, dass jedes Dateisystem einige Beschränkungen für die Länge von Dateinamen hat. Wenn $encoded_filename zu lang wird, funktioniert das nicht.

+0

Danke für Ihre Antwort, aber ich brauche wirklich Dateiname, um mit der ursprünglichen Benutzereingabe zu sein –