Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenia regularne - zapisywanie do tablicy podciągów pasujących do wzorca
ZaqU
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Witam,

Od ponad godziny głowię się nad wykrywaniem języka przeglądarki. Korzystam z $_SERVER['HTTP_ACCEPT_LANGUAGE'], która to zwraca mi takie coś:
Kod
pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4

To co mnie interesuje, to wyciągnięcie z tego ciągu pl-PL, a w drugiej kolejności en-US. Muszę zatem użyć wyrażeń regularnych, ale nie mam zielonego pojęcia w jaki sposób mógłbym zapisać do tablicy podciągi pasujące do wzorca. Przeszukałem całą dokumentację preg_* na php.net, ale nie znalazłem niczego co by mi pomogło (może coś przeoczyłem? w końcu już dawno po północy).

To czym dysponuje to sam wzorzec:
Kod
/[a-z]{2}\-[A-Z]{2}/

Ale potrzebuję do tego jeszcze tylko funkcji - wystarczy mi sama nazwa. (IMG:style_emoticons/default/smile.gif)

Ten post edytował ZaqU 21.04.2014, 11:00:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ZaXaZ
post
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


mi działa tak do twojego przykładu:

  1. <?php
  2. $string = 'pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4';
  3. $explode = explode(',', $string);
  4. $first = $explode[0];
  5. $second = substr($explode[2],0,5);
  6. echo 'Lang 1: '.$first.'<br/>';
  7. echo 'Lang 2: '.$second;
  8. ?>


nie wiem jak do innych.

--EDIT--
Nie polecam mojego rozwiązania (IMG:style_emoticons/default/tongue.gif) moja przeglądarka jak zrobiłem echo tamtej zmiennej $_SERVER... i print_r($explode);

wyświetla tak:

Kod
pl,en;q=0.9

Array ( [0] => pl [1] => en;q=0.9 )
Lang 1: pl
Lang 2:


--EDIT--
@2x down,
ja testowałem na telefonie,
Opera Mobile 12.10,
android 2.3.6

Ten post edytował ZaXaZ 21.04.2014, 11:30:30
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 11:18