Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Filtrowanie danych (link do zdjęcia)
Forum PHP.pl > Forum > Przedszkole
Ingram
Witam,

jak użyć preg_match aby sprawdzalo czy link ma na końcu rozszerzenie jpg jpeg albo png ?
Z góry dzięki
IProSoft
  1. preg_match("/\.([^\.]+)$/", $file_name, $match);
  2. echo $match[1] ;

i do tego jakiś if
Ingram
dzięki, ale nie bardzo rozumeim.

Mam takie coś:

  1. if (isset($_POST["wyslane"])) {
  2. $avatar = htmlspecialchars(stripslashes(strip_tags(trim($_POST["avatar"]))), ENT_QUOTES);
  3.  
  4. if (!preg_match("/ tutaj nie wiem co wpisac /i", $avatar)) {
  5. $blad++;
  6. echo '<span class="blad">Proszę wprowadzić poprawnie adres do obrazka.</span>';
  7. }
  8. if (@$blad == 0) {
  9. $wynik = mysql_query("UPDATE $tabela SET avatar='$avatar' WHERE login='$login' ");
  10.  
  11. if ($wynik) {
  12. echo '<span class="avatarok"><p>Avatar został zmieniony!</p></span>';
  13. }
  14. }
  15. }


$avatar to właśnie jest link do obrazka

edit:
tak sobie czytałem i tu moje pytanie jeśli coś takiego da się osiągnąć za pomocą np. fopen albo file_existens to jak wink.gif jeśli za pomocą preg match się Nie da to szzukam innego rozwiązania.
dzięki...
d3ut3r
można np tak:

  1.  
  2. function checkFile($name){
  3.  
  4. $pattern='/\\.jpg|\\.jpeg|\\.png$/i';
  5. $matches=array();
  6.  
  7. if (preg_match($pattern,substr($name,-4),$matches)){
  8.  
  9. return true;
  10.  
  11. } else{
  12.  
  13. return false;
  14.  
  15. }
  16. }
  17.  
  18. if (checkFile('test.png')){
  19.  
  20. echo "plik poprawny";
  21. } else{
  22. echo "złe rozszerzenie pliku";
  23. }
Ingram
Dziękuję bardzo smile.gif

funkcja sprawdza czy ostatnie 4 litery się zgadzają, a tu moje pytanie jak ktoś wprowadzi nie poprawny link ale na końcu będzie dobre rozszerzenie to czy da sieto jakoś sprawdzić?
d3ut3r
http://stackoverflow.com/questions/981954/...p/982045#982045

generalnie funkcja file_get_contents lub CURL
Ingram
Świetnie wink.gif dzięki bardzo.
Połączyłem dwie metody preg_match i curla (musiałem go włączyć w php.ini) i wszystko działa sprawnie smile.gif

ale ... zawsze jest jakieś ale smile.gif
funkcja curla musi mieć http:// na początku adresu i chciałbym dodać do funkcji checkFile preg_matcha który sprawdził by jeszcze 7 pierwszych znaków (http://) trochę kombinowałem ale coś nie ogarniam tych wyrażeń regularnych...
!*!
Kod
'/http\:\/\/?/'
Znak zapytania po wyrażeniu, oznacza że może wystąpić, lecz nie musi.
Ingram
Dziękuję bardzo smile.gif
Wszystko działa idealnie,
pozdrawiam
kudlatypawelek
http://php.net/manual/pl/function.pathinfo.php. Przykład z dokumentacji. Wyciągniesz sobie rozszerzenie, a potem it's up to you co z tym zrobisz
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.