Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ASCII i metoda GET
Forum PHP.pl > Forum > PHP
Macok
W jaki sposób wyłączyć zamiane kodów ascii, na znaki?
Chodzi mi oto, aby po wejściu na moją strone w ten sposób:
Kod
strona.pl/?code=napis%20napis
skrypt nie łapał tego jako "napis napis", tylko jako "napis%20napis"
Z góry dzięki za odpowiedź!
GrayHat
  1. <?php
  2. $code = str_replace(' ','%20',$_GET['code']);
  3. ?>
Macok
Nie oto chodziło :PProblem w tym, że musiałbym wtedy pozamieniać wszystkie znaki na ich kody ascii i gdyby ktoś wszedł o tak:
Kod
strona.pl/?code=napis
to nie widziałbym "napis" tylko kody ASCII.Przykład:Jeżeli ktoś wpisze "strona.pl/?code=%28" to ma się wyświetlić %28 a jeżeli wpisze "strona.pl/?code=(" to ma wyświetlić sie '('.

@EDIT
Wyjaśnie inaczej bo widze, ze nie wszyscy zrozumieli.W zmiennej "code" przechowuję jakiś nick np. Macok.Problem w tym, że gdyby nick wyglądał tak: "Macok%28", to mój skrypt zinterpretowałby to jako "Macok(".
Kicok
rawurlencode" title="Zobacz w manualu PHP" target="_manual przed wstawieniem nicku do adresu strony
franki01
_GET samo przetwarza sobie wszystkie dane urlencode(), wiec ja zawsze sam sobie budowalem tablice poprzez $_SERVER['QUERY_STRING'].

  1. <?php
  2. $array = explode("&", $_SERVER['QUESRY_STRING']);
  3.  
  4. $_GET = array();
  5.  
  6. foreach($array as $one) {
  7. $explode = explode("=", $one);
  8. if(preg_match("(([a-zA-Z0-9%_-]*)[([a-zA-Z0-9%_-]*)])", $explode[0], $tmp)) {
  9. $_GET[$tmp[1]][$tmp[2]] = $one[1];
  10. }
  11. else $_GET[$one[0]] = $one[1];
  12. }
  13. ?>


Nie jestem pewien czy dziala, ale logika podobna i pewnie duzo osob zrozumie smile.gif

Tutaj jest tylko jedno-poziomowa tablica, ale mozna dac wiecej...

I sie nie czepiac glupich bledow (ale poprawic owszem) bo pisalem na szybko biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.