Kopiowanie wartości wyszukanego bloku w kodzie html.

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.

<div class="stats-row-left" data-v-08ffb7ec data-v-4350dc9a><span data-v-08ffb7ec data-v-4350dc9a>7</span></div>
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

0

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

2

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

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?

<?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);
?>
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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1