jam Posted August 8, 2005 Report Share Posted August 8, 2005 Ir forma, kurā artikula laiks jāaizsarga no mīkstiem un gariem burtiem. PHP tas izskatās šādi: $bad = array("ā", "ē", "ī", "ū", "ž", "č", "ņ", "š", "ķ", "ļ"); $artikuls =str_replace($bad,'',strtolower($_POST['artikuls'])); Mē'ģinu, mēģinu un nesanāk. Tad echoju to $artikuls pirms insertošanas DB un parādījās ņekiji simboli: 䁤?冠 mīkstināto burtu vietā. Tipa ķeburi. Kāpēc tā? PhP failā encodings arī uzlikts UTF-8, viss pārējais strādā nevainojami, bet šs replace gan nē. Link to comment Share on other sites More sharing options...
Delfins Posted August 8, 2005 Report Share Posted August 8, 2005 nu takš tiec galā ar encoding. tas ka PHP faila encoding ir UTF vēl neko nenozīme... es pie sevis browserīo varu ielikt kaut vai arābu. Link to comment Share on other sites More sharing options...
bubu Posted August 8, 2005 Report Share Posted August 8, 2005 Pārbaudi tikai uz atļautajiem simboliem: $artikuls =preg_replace('@[^a-zA-Z0-9: \-+]@', '', $_POST['artikuls']); Link to comment Share on other sites More sharing options...
v3rb0 Posted August 8, 2005 Report Share Posted August 8, 2005 tiesi tā - sarakstīt tikai atļautos ir vieglāk, nekā visues iespējamos neatļautos. Link to comment Share on other sites More sharing options...
jam Posted August 8, 2005 Author Report Share Posted August 8, 2005 Pārbaudi tikai uz atļautajiem simboliem: $artikuls =preg_replace('@[^a-zA-Z0-9: \-+]@', '', $_POST['artikuls']); 20493[/snapback] a ja vēl arī visus speisus vajag nafigurēt? Tie regexpi kā tumša bilde. Link to comment Share on other sites More sharing options...
bubu Posted August 8, 2005 Report Share Posted August 8, 2005 Tad izvāc to atstarpi starp kvadrātiekavām. Jeb paski visus atļautos simbolus, tad uzrakstīs tev regexpu. Link to comment Share on other sites More sharing options...
jam Posted August 8, 2005 Author Report Share Posted August 8, 2005 Tad izvāc to atstarpi starp kvadrātiekavām. Jeb paski visus atļautos simbolus, tad uzrakstīs tev regexpu. 20503[/snapback] AA, skaic. Man vajag tikai tādus simbolus, kurus var izmantot urlii. latinu burti, "_" un "-" Vairak neko citu. Link to comment Share on other sites More sharing options...
bubu Posted August 8, 2005 Report Share Posted August 8, 2005 (edited) Man vajag tikai tādus simbolus, kurus var izmantot urlii.ir pretrunā ar latinu burti, "_" un "-" Vairak neko citu. Pasaki precīzi, ko tev vajag. Edited August 8, 2005 by bubu Link to comment Share on other sites More sharing options...
jam Posted August 8, 2005 Author Report Share Posted August 8, 2005 ir pretrunā ar Pasaki precīzi, ko tev vajag. 20507[/snapback] kāpēc pretrunā ar _ un - ?? urlī var šos simbolus izmantot kopaa ar latinu burtiem. Link to comment Share on other sites More sharing options...
bubu Posted August 8, 2005 Report Share Posted August 8, 2005 Tāpēc ka urī drīkst atrasties arī citi simboli, ne tikai latīņu burti un - _. Ja vajag tikai latīņu burtus un _ un - tad: $artikuls =preg_replace('@[^\w\-_]@i', '', $_POST['artikuls']); Link to comment Share on other sites More sharing options...
jam Posted August 8, 2005 Author Report Share Posted August 8, 2005 Tāpēc ka urī drīkst atrasties arī citi simboli, ne tikai latīņu burti un - _. Ja vajag tikai latīņu burtus un _ un - tad: $artikuls =preg_replace('@[^\w\-_]@i', '', $_POST['artikuls']); 20515[/snapback] Vecāki browseri tādu fīču nesaprot, paldies. Link to comment Share on other sites More sharing options...
bubu Posted August 8, 2005 Report Share Posted August 8, 2005 Ko nesaprot? Citus simbolus? Nu gan tu stāsti! + zīmi noteikti saprot (tā ir astarpes vietā) % zīmi arī, lai nokodētu hexā nerādāmus simbolus, un # zīme arī drīkst būt (anchors). Ja precīzi gribi zināt, kas drīkst būt, tad lasi šeit: http://www.faqs.org/rfcs/rfc1738.html (5-tajā sadāļā parādīts no kā var konstruēt urļus) Link to comment Share on other sites More sharing options...
Recommended Posts