Kopiowanie wartości wyszukanego bloku w kodzie html.

Kopiowanie wartości wyszukanego bloku w kodzie html.
R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Hej, mam pytanko,

czy jest jakaś możliwość w PHP, skopiować wartość znajdującą się pomiędzy znacznikami <span> do zmiennej bez wcześniejszej znajomości wartości data-xxxx. Znajduje w kodzie znacznik <div> o podanej klasie potem pierwsze wyszukanie <span> i potrzebuje skopiować wartość znajdującą się między nimi.

Kopiuj
<div class="stats-row-left" data-v-08ffb7ec data-v-4350dc9a><span data-v-08ffb7ec data-v-4350dc9a>7</span></div>
ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2310
0

@R1D3Rekk:

Ale ten HTML, to gdzie powstaje? Nie pachnie, jakbyś ty go produkował, tylko miał z zewnątrz ?

Jakiś parser HTML DOM, ale ten konkretnie na moją (niepełną) wiedzę o HTML, nie wygląda aby był poprawnie zbudowany HTML. Co go produkuje ?

EDIT: parser do gorszej jakości HTML-a (błędnego) miewaja w nazwie soup (zupa), Beautiful soup dla pythona, jsoup dla Javy. Szukaj dla PHP

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Niee to kod pobrany ze strony z wynikami meczów piłkarskich.

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
2

https://www.php.net/manual/en/class.domdocument.php
Ale jakoś musisz ustalić sobie zależność na podstawie której chcesz coś pobrać.

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Hmm ok, próbowałem też zrobić to przy pomocy wyrażeń regularnych ale nie mogę jakoś zrozumieć tego wyniku. Chciałbym dostać w wyniku linię która jest zakomentowa, czy coś zrobiłem nie tak czy funkcja preg_match nie daje takiej możliwości?

Kopiuj
<?php
$file = fopen("page.php", "w");   
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "https://www.meczyki.pl/wyniki-na-zywo/crystal-palace-manchester-city/3450528.html");
curl_setopt($c, CURLOPT_FILE, $file); 
curl_exec($c);
$openedFile = file_get_contents('page.php');

// <div class="stats-row-middle" data-v-08ffb7ec data-v-4350dc9a>Strzały</div>
$content = '/(<div class="stats-row-middle" data-v-)\w+\s(data-v-)\w+(>Strzały<)/'; // Strzały

if(preg_match($content ,$openedFile, $matches)){
	print_r($matches); 
}else{
	print "nie ma";
}
curl_close($c);
fclose($file);
?>
BR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Laduj np. taki pakiecik i treść znajdujesz b. prosto: https://github.com/voku/simple_html_dom

Regexy dla HTMLa to odpuść, bo to zawsze droga przez mękę.
Tym pakietem co podaje robiłem np. nakładkę api do systemu, który api nie wystawiał i działało elegancko.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.