Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Mały problem z preg_match i stronnicowaniem
Forum PHP.pl > Forum > Przedszkole
Greg23
Witam,
Mam coś takiego:

  1. $page=1;
  2.  
  3. if(preg_match('/[0-9]{1,2}/', $uri)) {
  4.  
  5. $wzor2 = '/\/szukaj\/(.+?)\/(.+?)/';
  6. preg_match_all($wzor2, $uri, $page);
  7. echo "Page:".$page=$page[2][0];
  8.  
  9. }


W ten sposób sprawdzam na podstawie linku a konkretnie uri na której podstronie jestem, żeby wyświetlić odpowiednie dane.
Dla cyfr z przedziału 1-9 wszystko jest w porządku i echo wyświetla mi poprawny nr podstrony, jednak dla liczb >=10, skrypt przyjmuje wartość
$page=1 tak jakby moje wyrażenie regularne działało tylko dla cyfr 1-9.

Gdzie popełniłem błąd ?

Pomoże ktoś ?
Michael2318
  1. $wzor2 = '/\/szukaj\/(.+?)\/(.+)/';

questionmark.gif
Sephirus
ojojoj ktoś tu coś robi całkiem źle...

Rozumiem że masz adres typu:

Kod
/szukaj/szukana_fraza/numer_strony/

np.:

/szukaj/kurs php/23/


jeśli tak jest... to na co tu wyrażenia regularne? smile.gif

  1. $url = '/szukaj/kurs php/23/';
  2. $params = explode('/',$url);
  3. $query = $params[1];
  4. $page = $params[2];
  5.  
  6. // ... tyle ...
  7.  
Greg23
Dokładnie takiego mam linka. Jakoś w ogóle nie pomyślałem o użyciu explode.

Czy to jest szybsze od reg_exp ?

Tak w ogóle to sposób michaela działa tak jak trzeba, tylko zastanawia mnie dlaczego ten mój nie działał skoro różnica jest tylko na końcu:
ja miałem
(.+?)
a M. użył
(.+)

i przeszło a przecież z tego co wiem to (.+?) powinno znaczy "dowolny ciąg" więc nie wiem czemu to nie 'trybi'.

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.