Autor | Zpráva | ||
---|---|---|---|
MartinXYZ Profil * |
#1 · Zasláno: 19. 8. 2014, 19:35:36
Ahoj,
moc prosím o pomoc s mým problémem :-). Mám PHP skript - vytvářím s ním na serveru soubory, které mají takový název, který byl zadán do políčka formuláře. Pro zjednodušení skript zkrátím: <input type="text" name="nazev_souboru"> <input type="submit" value="Vytvořit soubor"> <?php if ($_POST[nazev_souboru] != ""){ $nahradit_znaky = Array('*'=>'_','?'=>'_','"'=>'','<'=>'_','>'=>'_',':'=>'_'); file_put_contents(strtr($_POST[nazev_souboru], $nahradit_znaky).".txt"); } ?> Nyní k problému. Pomocí Array v "$nahradit_znaky" si mohu odstranit znaky, které budou dělat v cestě problémy (např. lomítka, otazník, hvězdička, dvojtečka, atd.), to není problém. Ale neexistuje nějaká funkce, která umí automaticky validovat text tak, aby za mě ty znaky odstranila, a abych nemusel vypisovat desítky znaků do Array? Názvy souborů totiž nezadávám ručně, ale automaticky je získávám z vybraného textu, kde se bohužel vyskytují i jiné speciální znaky (např. odrážky typu "kulička", "puntík", "čtvereček", nebo prodloužená pomlčka, francouzské uvozovky, entity, atd...). Takže ve zkratce bych spíše potřeboval, aby byly povolené jen třeba znaky a-ž, A-Ž (včetně diakritiky), pomlčky a čísla. Ostatní znaky aby se třeba nahradily "_". Bude tu někdo, kdo by mi prosím pomohl? :-) Děkuji moc, Martin |
||
MartinXYZ Profil * |
#2 · Zasláno: 19. 8. 2014, 23:12:30
Tak už jsem na to přišel.. kdyby se to někomu hodilo, dávám to sem:
<?php if ($_POST[nazev_souboru] != ""){ file_put_contents(preg_replace('/[^\p{L}0-9\-=%;!\'_ .,()[\]]/u', '', $_POST[nazev_souboru]).".txt"); } ?> Ve skriptu jsou povolené znaky a-Ž vč. diakritiky, číslice, plus tyto znaky: - = % ; ! ' _ mezera . , ( ) [ ] M. |
||
Časová prodleva: 10 let
|
0