Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> porownywanie nazwy plikow przez preg_match
kajko84
post 13.02.2007, 15:44:32
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.11.2006

Ostrzeżenie: (0%)
-----


Witam

napisalem kod ktory zczytuje wszystkie pliki w podanej przeze mnie sciezce. chcialem zeby sprawdzal czy pliki maja rozszerzenie .jpg i jesli tak to robi z nimi kolejne rzeczy (miniaturki, kopiuje itp - skrypt importu fotek do galerii). do sprawdzenia rozszerzenia uzylem preg_match" title="Zobacz w manualu php" target="_manual i zrobilem cos takiego:

  1. <?php
  2. preg_match( '/^(.+?).(jpg)$/i', $plik, $out )
  3. ?>


na testowym serwerze postawionym na windowsie wszystko jest ok, ale na linuxowym juz nie. chodzi tu o wielkosc znakow, probowalem zarowny z tym i na koncu jak i bez, caly czas to samo, jesli plik ma w nazwie duze litery jest lipa. funkcja zaspisuje do zmiennej jego nazawe malymi no i wszystko sie sypie bo dalsza czesc skryptu odwoluje sie do "nieistniejacych" plikow.

wiem ze podobnych tematow juz tu troche bylo, ale nie znalazlem nic co by mi pomoglo, a siedze nad tym od rana... prosze o pomoc

dzieki i pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
siemakuba
post 13.02.2007, 17:02:49
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Może zamiast wyrażeń regularnych użyj funkcji pathinfo" title="Zobacz w manualu php" target="_manual?
Jako parametr podajesz ścieżkę do pliku, w odpowiedzi dostajesz tablicę ze ścieżką, nazwą i rozszerzeniem.

Inna opcja - dbaj o to żeby wszystkie pliki miały rozszerzenie pisane małymi literami - zwalcz problem u źródła :)

pozdr.
Go to the top of the page
+Quote Post
Speedy
post 13.02.2007, 17:16:24
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Po skorzystaniu z funkcji pathinfo" title="Zobacz w manualu php" target="_manual, o której wspomniał przedmówca, zamień sobie odczytane rozszerzenie na małe litery za pomocą funkcji strtolower" title="Zobacz w manualu php" target="_manual, porównaj to z frazą `jpg` i po krzyku.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
bendi
post 14.02.2007, 09:22:58
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Coś musisz źle robić (dodałem spację, żeby mi łyknął nazwy plików rozdzielone spacjami):
Kod
marek@marek-desktop:~$ php -r 'preg_match_all( "/ (.*?)\.(jpg)/i", " bla.jpg dupa.JPG", $m );print_r($m);'
Array
(
    [0] => Array
        (
            [0] =>  bla.jpg
            [1] =>  dupa.JPG
        )

    [1] => Array
        (
            [0] => bla
            [1] => dupa
        )

    [2] => Array
        (
            [0] => jpg
            [1] => JPG
        )

)

Jak widać wielkość liter nie ma znaczenia, wszystko jest ładnie pięknie zapisywane w tablicy wynikowej.


--------------------
Go to the top of the page
+Quote Post
kajko84
post 14.02.2007, 10:45:21
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.11.2006

Ostrzeżenie: (0%)
-----


wielkie dzieki za pomoc, problem rozwiazany...

co do samego preg_match" title="Zobacz w manualu php" target="_manual'a to rzeczywiscie "robilem cos zle" smile.gif konkretnie to 2 linijki wczesniej mialem cos takiego:

  1. <?php
  2. while ($plik = strtolower(readdir($folder))) {
  3. ?>


jednak zanim to zauwazylem napisalem to samo z uzyciem funkcji pathinfo" title="Zobacz w manualu php" target="_manual i uzyskalem w gruncie rzeczy taki sam efekt

dziekuje jeszcze raz za pomoc i poswiecony czas
pozdrawiam
Go to the top of the page
+Quote Post
bendi
post 14.02.2007, 14:41:42
Post #6





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Polecam glob" title="Zobacz w manualu php" target="_manual


--------------------
Go to the top of the page
+Quote Post
kajko84
post 15.02.2007, 09:43:31
Post #7





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 24.11.2006

Ostrzeżenie: (0%)
-----


swietna funkcja, bardzo sie przyda.
dzieki i pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.07.2025 - 21:31