Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][PHP][curl] Problem z obrazkiem
roobik
post 19.07.2014, 12:23:54
Post #1





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

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


Witam.
Dość dawno nie pisałem wink.gif W sumie piszę tylko, gdy mam jakiś poważniejszy orzech. I tak jest tym razem.
Sprawa jest taka: na jednej ze stron obrazek zmienia się co kilkanaście minut (czasem co pół godziny).
I chciałebym ten własnie obrazek wyłuskać.
Zrobiłem więc tak:
  1. $strona = 'http://www.jakas_strona.pl';
  2. $now = curl_init($strona);
  3. curl_setopt($now, CURLOPT_RETURNTRANSFER, true);
  4. $Stronka = curl_exec($now);
  5. curl_close($now);
  6.  
  7. preg_match_all("/\<div class\=\"content_mv\" style=\"background: url(sites\/images\/news\/(.*?).jpg)\"><\/div\>/mi", $Stronka, $Wynik);
  8.  
  9. for($i=0;$i<count($Wynik[1]);$i++)
  10. {
  11. echo $Wynik[1][$i];
  12.  
  13.  
  14. }
  15.  
  16. echo '<br><br><hr>test';print_r($Wynik);

ale wyświetla mi:
Cytat
testArray ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )


Myślałem, że już w sumie wyrażenia regularne znam, a tu niespodzianka....
Pomóżcie plis... bo nie wiem nawet, gdzie robię babola sad.gif
Go to the top of the page
+Quote Post
trueblue
post 19.07.2014, 12:42:45
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Dlaczego \= ?
Do testów polecam: http://www.regexr.com/


--------------------
Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 13:04:30
Post #3





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

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


Cytat(trueblue)
Dlaczego \= ?

Dlaczego CO, bo nie rozumiem tej odpowiedzi (nie mam pokazanej przez Ciebie kolejności znaków)...
Go to the top of the page
+Quote Post
nospor
post 19.07.2014, 13:17:22
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tu masz to o czym wspomniano
class\=
No jednal linijka tekstu i sam nie widzisz co piszesz nawet jak ci palcem wytkną?

Poza tym, skad mamy wiedziec czy ogolnie napisales poprawne wyrazenie, skoro nie wiemy jak wyglada ciag ktorego szukasz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 13:27:28
Post #5





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

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


nospor, ja po prostu nie wiedziałem, o co trueblue pyta. Bo naprawdę różnie można interpretować pytanie "Dlaczego?" wink.gif
OK... No problem

Ogólnie linia, która mnie interesuje, wygląda (mniej więcej) tak:
  1. <div class="content_mv" style="background: url(sites/images/news/201407191334.jpg) center top no-repeat; height: 60px; width: 75px;"></div>

Piszę "mniej więcej", ponieważ (jak pisałem wcześniej) nazwa obrazka zmienia się w ciągu doby kilkanaście/kilkadziesiąt razy...


Zauważyłem też, że nazwa obrazka składa się z daty i godziny (ale akurat to ma najmniejsze znaczenie) wink.gif

Ten post edytował roobik 19.07.2014, 13:29:26
Go to the top of the page
+Quote Post
nospor
post 19.07.2014, 13:35:39
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zapytal: dlaczego uzywasz \= kiedy ten \ nie ma tam sensu i powinno byc tylko =. Nie wiem co tam mozna roznie interpretowac smile.gif

Za to kropke . powinienes poprzedzac \ jesli szukasz kropki a nie dowolnego znaku.

Poza tym sprawdzales w ogole czy Twoj cURL zwraca to co powinien?

Kolejnym znakiem specjalnym są nawiasy i jesli nie poprzedzisz ich \ to będą traktowane jako znak specjalny. A przeciez ty nawiasy masz w szukanym tekscie.

Wniosek: nie znasz jednak tak dobrze wyrazen jak myslales, skoro lezysz na takich podstawach jak to, co jest znakiem specjalnym a co nie.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 13:41:46
Post #7





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

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


Taką metodę stosowałem już niejednokrotnie (kopiowałem kod, zmieniałem to, co mnie interesuje i hulało).
A teraz po prostu nie wiem, gdzie mam babola.
Usunąłem slash'a, ale i tak to nic nie dało sad.gif
Dalej jest to samo:
Cytat
testArray ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )


//edit
Ale ja nigdzie nie napisałem, że DOBRZE znam, tylko, że "myślałem, że w sumie znam" (w domyśle: znam na tyle, że mi to wystarcza na moje "potrzeby") wink.gif
Jakbym je znał DOBRZE, to bym tu nie pisał raczej... hmmm...? wink.gif

Ten post edytował roobik 19.07.2014, 13:45:29
Go to the top of the page
+Quote Post
nospor
post 19.07.2014, 13:46:35
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie dosc ze miales usunac w jednym miejscu, to miales dodac w innych. Pisalem ci o znakach specjalnych, ktorych zapomniales oslashowac....

Zrob co pisalem, a potem pokaz kod po zmianach.
No i pytam poraz kolejny: sprawdzales czy w ogole cURL zwraca to co powinien?

edit:
Cytat
Ale ja nigdzie nie napisałem, że DOBRZE znam, tylko, że "myślałem, że w sumie znam"
No to nie znasz nawet w sumie, bo znajmosc znakow specjalnych to podstawa, by nie robic tak banalnych bledow, ktore wlasnie robisz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 13:54:47
Post #9





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

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


zmieniłem tę linię i teraz wygląda to tak:
  1. preg_match_all("/\<div class=\"content_mv\" style=\"background: url(sites\/images\/news\/\(.*?\).jpg)\"><\/div\>/mi", $Stronka, $Wynik);

niestety, nie pomogło


Cytat(nospor)
sprawdzales czy w ogole cURL zwraca to co powinien?

Resource id #1
sad.gif

Ten post edytował roobik 19.07.2014, 13:59:57
Go to the top of the page
+Quote Post
ZaXaZ
post 19.07.2014, 14:00:12
Post #10





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

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


Cytat(roobik @ 19.07.2014, 14:54:47 ) *
zmieniłem tę linię i teraz wygląda to tak:
  1. preg_match_all("/\<div class=\"content_mv\" style=\"background: url(sites\/images\/news\/\(.*?\).jpg)\"><\/div\>/mi", $Stronka, $Wynik);

niestety, nie pomogło


skasuj dla testu sprzed < > slashe, mam prega co tak dziala, poza tym chyba (.*?) jednego brakuje a w pierwszym to niewiem do czego ci slash

moze moj preg niepoprawny ale dziala
  1. "/<span class\=\"Cell1\" >(.*?)<\/span>/s"


Ten post edytował ZaXaZ 19.07.2014, 14:02:52


--------------------
Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 14:09:00
Post #11





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

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


Cytat(ZaXaZ)
skasuj dla testu sprzed < > slashe


Już tak próbowałem, ale wyskakiwał błąd:
Cytat
Unknown modifier '<'


Cytat(ZaXaZ)
mam prega co tak dziala


Też miałem podobnie przy jednym z poprzednich kodów smile.gif
Go to the top of the page
+Quote Post
by_ikar
post 19.07.2014, 14:25:41
Post #12





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


  1. <?php
  2.  
  3. $str = '<div class="content_mv" style="background: url(sites/images/news/201407191334.jpg) center top no-repeat; height: 60px; width: 75px;"></div>';
  4.  
  5. preg_match('#<div[\s]+class="content_mv"[\s]+style="[\w\s:]+url\(([\w\/\.]+)\)[^>]+>#', $str, $matches);
  6.  
  7. var_dump($matches);


Ten post edytował by_ikar 19.07.2014, 14:32:56
Go to the top of the page
+Quote Post
nospor
post 19.07.2014, 14:28:42
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Resource id #1

Co ty sprawdzales? Miales sprawdzic zmienną $Stronka


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
roobik
post 19.07.2014, 14:49:01
Post #14





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

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


I O TO CHODZI smile.gif
Dzięki bardzo!
Resztę już zrobię sam

nospor - fakt, nie sprawdziłem tego dokładnie (literówka, a potem parę odp na Forum)

Ten post edytował roobik 19.07.2014, 15:06:48
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: 14.08.2025 - 00:07