Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zamiana znaków innych niż alfaumeryczne
Forum PHP.pl > Forum > PHP
czachor
Witam,

mam takie coś:
  1. <?php
  2. function clean_filename($filename)
  3. {
  4.  $reserved = preg_quote('/:*?"<>|', '/');//characters that are illegal on any of the 3 major OS's
  5.  //replaces all characters up through space and all past ~ along with the above res
    erved characters
  6.  
  7.  return preg_replace("/([x00-x40x7f-xff{$reserved}])/e", '_', $filename);
  8. }
  9.  
  10. echo clean_filename('ąśąćś hspiafh r5278969fsdj dśx8w7r9');
  11. ?>

Funkcja usuwa z nazwy pliku wszystkie znaki nie-alfanumeryczne. Funkcja działa poprawnie, ale wyświetla kilka notice'ów o tej samej treści:
Kod
Notice: Use of undefined constant _ - assumed '_' in D:\Projects\htdocs\doc\test\index.php(7) : regexp code on line 1


Co jest nie tak? Bo się zagubiłem...
em1X
moze tak?

  1. <?php
  2. function clean_filename($filename)
  3. {
  4. return ctype_alpha($filename) ? $filename : preg_replace('/[^w]/', '_', $filename);
  5. }
  6. ?>
czachor
No interesujące rozwiązanie. Tylko dla polskich znaków (utf-8) robi krzaczki...
  1. <?php
  2. echo clean_filename('ą');
  3.  
  4. //zwraca:
  5. //�_
  6. ?>

Co z tym zrobić?
em1X
imho wszystko jest ok.. to wygląda jakby te ą było wpisane w edytorze tekstu z kodowaniem utf8 natomiast próbowane wyświetlić w innym kodowaniu (win1250 czy latin2)
czachor
No właśnie problem w tym, że wszystko jest zapisane tak jak trzeba :/ Zend Studio, utf-8, nagłówki są...
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.