• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

perg_match jak wyciągnąć tą wartość

Object Storage Arubacloud
+1 głos
211 wizyt
pytanie zadane 11 września 2017 w PHP przez Gorlik1337 Użytkownik (610 p.)
<li><a href="https://strona.pl/zadania" id="icon-zadania"><span class="circle"></span>Zadania domowe</a>                        <a class="button counter blue">1</a>
                                            </li>

Mam coś takiego i chciałbym odczytać za pomocą perg_match te "jedynke" 1.

Mogłby mi ktoś napisać gotową funkcję (albo wytłumaczy wyrażenia regularne bo nie rozumiem), jak by co to linijka class="button counter blue" się powtarza w wielu miejscach.

1
komentarz 11 września 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Funkcja nazywa się preg_match(), nie perg_match().

komentarz 11 września 2017 przez Fenix Nałogowiec (26,750 p.)
co chciałbyś wyciągnąć? Ops, już zauważyłem. Zaraz podam Ci odpowiedź.
1
komentarz 11 września 2017 przez xandros Nałogowiec (29,450 p.)

Ech, ludzie ludzie. Htmla nie "parsuje" się regexpem...

https://stackoverflow.com/a/1732454

$dom = new DOMDocument();
$dom->loadHTML('<li><a href="https://strona.pl/zadania" id="icon-zadania"><span class="circle"></span>Zadania domowe</a><a class="button counter blue">1</a></li>');

$dom->getElementsByTagName('a')->item(1)->textContent;

 

2 odpowiedzi

+1 głos
odpowiedź 11 września 2017 przez Fenix Nałogowiec (26,750 p.)
wybrane 15 września 2017 przez Gorlik1337
 
Najlepsza
preg_match('%<a[^>]+class="button counter blue"[^>]*>(.*?)</a>%', $twojText, $rozwiazanie)

 

Rozwiązanie wyciągniesz za pomocą $rozwiazanie[1]

Całego preg_matcha wrzuciłbym również w if'a, a wewnątrz pobierał rozwiązanie. Oczywiście zmień nazwę zmiennych które Ci podałem. ;)

Tutaj masz dobre narzędzie  do testowania, pisania regexpów.

 

–1 głos
odpowiedź 11 września 2017 przez Chess Szeryf (76,710 p.)
<?php 
preg_match_all('@<a class="button counter blue">.*</a>@',

'<li>
	<a href="https://strona.pl/zadania" id="icon-zadania">
		<span class="circle"></span>Zadania domowe
	</a>                        
	<a class="button counter blue">6</a>
	<a class="button counter blue">3</a>
	<a class="button counter blue">3</a>
</li>'
,$matches);


foreach($matches as $v1){
	foreach($v1 as $v2) {
		echo $v2.' ';
	}
}

?>

 

Podobne pytania

0 głosów
2 odpowiedzi 129 wizyt
0 głosów
1 odpowiedź 567 wizyt
pytanie zadane 31 stycznia 2018 w PHP przez Milesq Nałogowiec (32,020 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...