Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenie regularne i &&, wyrażenie się urywa przez && na końcu wzorca
IronStark
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 18.04.2010

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


Witam, mam wyrażenie regularne

Kod
preg_match_all("/file=(.*)&&/U",$zrodlo, $wynik);


Niestety podwójny znak ampresand na końcu, sprawia, że w podglądzie tablicy (print_r) zamiast && na końcu wykrytego stringu jest &--> i wyrażenie nie działa poprawnie, tablica przestaje się wyświetlać.
Kiedy usunę ostatni znak & jest ok.
O co tutaj w ogóle chodzi ? siedzę już kilkadziesiąt minut i nie mogę tego rozkminić.

Czemu && zamienia się sam na &--> w moim wyrażeniu ?

Ten post edytował IronStark 11.02.2012, 22:36:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


a & to nie jest przypadkiem specjalny znak? Jak dobrze pamiętam (IMG:style_emoticons/default/wink.gif) poprzedź go \
  1. preg_match_all('/file=(.*)\&/U',$zrodlo, $wynik);
Go to the top of the page
+Quote Post
IronStark
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 18.04.2010

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


niestety to nic nie daje, dalej dzieje się to samo.
Wygląda jak jakiś bug.

i jak ktoś chciałby zostać bohaterem w bugcenter i to sprawdzić ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Necsord
post
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


Nie wiem kompletnie o co chodzi po spróbowaniu tego regex'a, wziałem losowy ciąg znaków pasujący do wyrazenia wyświetliłem dump, print_r, printf i ciągle nie wiem.

Jakiś konkretny przykład może? Co używasz w $zrodlo, co uzysujesz, co według ciebie powinienes uzyskać.
Go to the top of the page
+Quote Post
IronStark
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 18.04.2010

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


Cytat
preg_match_all('/file=(.*)\&/U',$zrodlo, $wynik);


np: cośtamxfile=http://link&&cośtamdalej

Powinno wyłuskać http:.//link , co się dzieje gdy jest jeden znak ampresand, jednak gdy sa dwa, dzieje się tak:

cośtamxfile=http://link&--> i tablica nagle się urywa
Go to the top of the page
+Quote Post
Necsord
post
Post #6





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


  1. file=http://link&&
  2. Array ( [0] => Array ( [0] => file=http://link&& ) [1] => Array ( [0] => http://link ) )
  3. 0 =>
  4. 0 => string 'file=http://link&&' (length=18)
  5. 1 =>
  6. 0 => string 'http://link' (length=11)
  7. file=http://link&&

Kolejno printf, print_r, var_dump, echo dla "/file=(.*)&&/U". Nie widze problemu. Może jakiś html error?

Ten post edytował Necsord 13.02.2012, 14:02:22
Go to the top of the page
+Quote Post
IronStark
post
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 18.04.2010

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


dzięki, że to sprawdziłeś.
Prawdopodobnie gdzieś jest jeszcze coś z mojej strony czego nie zlokalizowałem. Ale teraz wiem, że muszę szukać i idzie to rozwiązać. To rodzi nadzieję (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:25