Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z wyrażeniem regularnym
djpotwosss
post 16.07.2012, 10:19:40
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


Witajcie, mam problem z wyrażeniami regularnymi z funkcją preg_match

mam taki skrypt:
  1. $url = "http://jakislink.pl";
  2. $tekst=file_get_contents($url);
  3. preg_match('[<td><a href=\"(.*)\">(.*)</a>(.*)<a href=\"(.*)\">(.*)</a></td>]', $tekst, $wynik);
  4. echo 'Wynik to: ';
  5. $wynik[0]='<b>' . strip_tags($wynik[0]) . '</b>';
  6. echo ($wynik[0]);


HTML który chcę przerobić na wyrażenie regularne to:
  1. <td><a href="http://jakislink.pl">1 zdanie</a>
  2. - <a href="http://jakislink.pl">2 zdanie</a></td>


Niestety ten preg_match nie działa.. Wyświetla puste miejsce. Jak to powinno być poprawnie?

A gdy napiszę w funkcji <td><a href=\"(.*)\">(.*)</a> to wyświetla '1 zdanie'
Go to the top of the page
+Quote Post
Sephirus
post 16.07.2012, 10:25:41
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Napisz dokładnie co chcesz wyciągać z tego html'a bo z tych wyrażeń to ciężko to stwierdzić.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
djpotwosss
post 16.07.2012, 10:38:28
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


Chce wyciągnąć cały ten html ('1 zdanie' oraz '2 zdanie')
Go to the top of the page
+Quote Post
Sephirus
post 16.07.2012, 10:53:23
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


  1. preg_match('#<td><a\shref="[^"]+">([^<]+)</a>[^<]+<a\shref="[^"]+">([^<]+)</a></td>#si', $tekst, $wynik);
  2.  
  3. // tu masz całość:
  4. echo $wynik[0];
  5.  
  6. // tu masz zdanie 1 zdanie 2
  7. echo $wynik[1].$wynik[2];


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
djpotwosss
post 7.09.2012, 11:57:51
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


Witajcie, mam jeszcze taki problem z tym wyrażeniem:


Chcę to zamienić:
  1. {"nowplaying":{"9":{"artist_id":"ZMIENNELICZBY","artist":"JAKIEŚ ZDANIE","track_id":"JAKIŚ ID","title":"Jakieś ZDANIE","station":"stacja","artist_link":"http:\/\/link.pl\/artist\/ZMIENNELICZBY\/JAKIEŚ-ZDANIe\/","track_link":"http:\/\/link.pl\/track\/ZMIENNELICZBY\/JAKIEŚ-ZDANIE\/","station_link":"http:\/\/link.pl\/stacja\/12\/stacja\/"}},"time":"JAKIEŚLICZBY"}


Mam coś takiego:
  1. preg_match('#{"nowplaying":{"9":{"artist_id":"[^"]","artist":"[^"]","track_id":"[^"]","title":"[^#]","station":"Stacja","artist_link":"http:\/\/link.plt\/artist\/[^"]\/[^"]\/","track_link":"http:\/\/link.pl\/track\/[^"]\/[^"]\/","station_link":"http:\/\/link.pl\/stacja\/12\/stacja\/"}},"time":"[^"]"}#si', $zd1, $zd2);

Nie działa niestety..
Go to the top of the page
+Quote Post
abort
post 8.09.2012, 15:21:29
Post #6





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Do odczytywania JSON są odpowiednie funkcje, nie ma sensu babrać się w wyrażeniach regularnych.
Poczytaj sobie http://www.php.net/manual/en/book.json.php - a się nie zawiedziesz.
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: 22.07.2025 - 20:21