• 1
  • 2
2020-12-05, 15:48
  #1
Medlem
Hej!
$result innehller massa HTML exempel nedan vad den kan innehlla, men i verkligheten r det mycket lngre. Nu vill jag ha en funktion som letar upp en specifik span, och plocka ut siffran som finns i den t mig. <span class="hittamig">5 Bilar</span>.
I detta fall vill jag f ut "5", men den siffran kan vara vilken som helst. Hur kan jag plocka ut den p ett smidigt stt? Classen r unik fr detta iallafall, s "hittamig" finns det bara en av.

$result;
Kod:
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
<title>Online</title>
<!-- jQuery + Bootstrap JS -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="App">
<div class="vertical-center">
<div class="inner-block">
<h3><img src="logga.png"><br>Vlkommen Olle!</h3>
<ul>
<li><a href="ut.php">Logga Ut</a></li>
</ul>

<span class="hittamig">5 Bilar</span>
            </div>
        </div>
    </div>
</body>
</html>
Citera
2020-12-05, 15:55
  #2
Medlem
Trollfeeders avatar
Pipe till grep borde vl funka smidigt?
Citera
2020-12-05, 16:08
  #3
Medlem
Citat:
Ursprungligen postat av Trollfeeder
Pipe till grep borde vl funka smidigt?

Googlade, fattade noll
Citera
2020-12-05, 16:09
  #4
Medlem
Trollfeeders avatar
Citat:
Ursprungligen postat av matematikern88
Googlade, fattade noll

curl <ditt kommando> | grep <det du letar efter>
Citera
2020-12-05, 16:21
  #5
Medlem
distanss avatar
Citat:
Ursprungligen postat av Trollfeeder
Pipe till grep borde vl funka smidigt?

Ja, om man pratar regexp flytande

Denna kanske kan vara till hjlp?!

https://stackoverflow.com/questions/...data-from-html
Citera
2020-12-05, 16:46
  #6
Medlem
Citat:
Ursprungligen postat av distans
Ja, om man pratar regexp flytande

Denna kanske kan vara till hjlp?!

https://stackoverflow.com/questions/...data-from-html

Hittade denna, men den tar den frsta <span> den hittar, hur fr jag in class="hittamig"?

Kod:
$dom = new DOMDocument;
$dom->loadHTML($result);
$result2 $dom->getElementsByTagName('span')->item(0)->nodeValue;
$dom->loadHTML($html);
foreach (
$dom->getElementsByTagName('span') as $tag) {
    echo 
$tag->nodeValue '<br/>';
}

echo 
strtok($result2' ');
if (
preg_match('#<span[^<>]*>([\d,]+).*?</span>#'$result2$matches)) {
    echo 
$matches[1];

Citera
2020-12-05, 17:09
  #7
Medlem
distanss avatar
Citat:
Ursprungligen postat av matematikern88
Hittade denna, men den tar den frsta <span> den hittar, hur fr jag in class="hittamig"?

Regexp och web scraping ger mig bara huvudvrk!

Tror du behver ndra
Kod:
preg_match
att ta hela taggen
Kod:
<span class="hittamig">
.

Men r vldigt osker

https://automatedcode.wordpress.com/...with-php-curl/
Citera
2020-12-05, 17:39
  #8
Medlem
Citat:
Ursprungligen postat av distans
Regexp och web scraping ger mig bara huvudvrk!

Tror du behver ndra
Kod:
preg_match
att ta hela taggen
Kod:
<span class="hittamig">
.

Men r vldigt osker

https://automatedcode.wordpress.com/...with-php-curl/

Gav ingen skillnad, eller hur tnker du? Detta r sista grejen p mitt projekt, s vill bara att den ska ge mig rtt siffra nu.
Kod:
if (preg_match('#<span class="hittamig"[^<>]*>([\d,]+).*?</span>#'$result2$matches)) { 
Citera
2020-12-05, 17:56
  #9
Medlem
distanss avatar
Citat:
Ursprungligen postat av matematikern88
Gav ingen skillnad, eller hur tnker du? Detta r sista grejen p mitt projekt, s vill bara att den ska ge mig rtt siffra nu.
Kod:
if (preg_match('#<span class="hittamig"[^<>]*>([\d,]+).*?</span>#'$result2$matches)) { 

Du mste "escapea" citattecknena runt hittamig skulle jag tro.. Typ
Kod:
\"hittamig\"
Citera
2020-12-05, 18:01
  #10
Medlem
Citat:
Ursprungligen postat av distans
Du mste "escapea" citattecknena runt hittamig skulle jag tro.. Typ
Kod:
\"hittamig\"

Tyvrr, det r raden ver som gr utskriften.
echo strtok($result2, ' ');

hela if-koden gr att ta bort, den verkar inte gra ngot. Detta r verkurs fr mig egentligen.
Citera
2020-12-05, 18:10
  #11
Medlem
distanss avatar
Citat:
Ursprungligen postat av matematikern88
Detta r verkurs fr mig egentligen.

Som sagt, huvudvrk! Ngon p Stackexchange eller annat internationellt forum kanske kan bidra med bttre svar!?
Citera
2020-12-05, 20:27
  #12
Medlem
Kod:
preg_match('/<span class="hittamig">(.*?)<\/span>/s'$results$matches);
if(
count($matches) >= 2) {
    
$result $matches[1];
    
$numeric preg_replace("/[^0-9]/"""$result);
    echo 
"Original match: " $result."\r\n";
    echo 
"Numerically parsed match: " $numeric."\r\n";


Ovanstende producerar fljande resultat.

Citat:
Original match: 5 Bilar
Numerically parsed match: 5
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in