Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: escape'owanie
Forum PHP.pl > Forum > PHP
dtb
Przykład:

  1. <?php
  2. $table[] = 'kol1|kol2|kol3|kol4';
  3. $table[] = 'kol1|kol2|kol3|kol4';
  4. $table[] = 'kol1|kol2|kol3|kol4';
  5.  
  6. foreach ($table as $row)
  7. {
  8. $row = explode ('|', $row);
  9. echo $row[0]...;
  10. }
  11. ?>


Każdy miał pewnie doczynienia z tego typu przechowywaniem danych. Jak wiadomo sposob ten jest niedoskonały bo co gdy zechcemy w rekordzie wstawic tekst zawierajacy znak |?
Wpadłem na pomysł na escapowanie znaków:

  1. <?php
  2. $text = str_replace ('|', chr(4), $text);
  3. ...
  4. $text = str_replace (chr(4), '|', $text);
  5.  
  6. ?>


Jednak nie wiem czy to jest do końca bezpieczne. Za jakie znaki (kod ascii), ktorych normalnie nie da sie wprowadzic moge zamieniac znaki do ecpage'owania?
crash
A dlaczego nie użyć separatora np.: |;| zamiast samego |... Albo można też od razu z wartości każdego elementu $table zrobić kolejne tablice...
dtb
1. tablica $table jest efektem wykonania funkcji:
$table = file('plik');
2. to jest tylko przykład. nie chodzi mi tu o ta tabele ale o escapowanie znakow. to byl tylko przyklad na logiczne uzycie tego. moje pytanie brzmi:
Cytat
Za jakie znaki (kod ascii), ktorych normalnie nie da sie wprowadzic moge zamieniac znaki do ecpage'owania?
dr_bonzo
Wczytujesz i zapisujesz zawsze wszystkie rekordy na raz? zainteresuj sie serialize / unserialize.
dtb
ta "baza/tabela" ktora zaprezentowalem to tylko przyklad, aby wam wytlumaczyc idee tego escape'owania. Naprawde potrzebuje tego do zupełnie czegoś innego. mi chodzi tylko i wylacznie k***a o pytanie:
Cytat
Za jakie znaki (kod ascii), ktorych normalnie nie da sie wprowadzic moge zamieniac znaki do ecpage'owania?
crash
Wybierz sobie:
  1. <?php
  2. for( $i = 1; $i < 128; $i++ )
  3. {
  4.    echo $i . ': ' . chr( $i ) . ', ';
  5. }
  6. ?>


http://www.programuj.com/ascii.php
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.