Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] reguläre Ausdruck und assosiatives Array

Empfohlene Antworten

Veröffentlicht

Hallo,

ich verzweifele im moment ein klein bißchen daran ein Stück HTML-Code zu parsen. Die Site besteht u.a. aus Teilen der Form:

<a href="/search/eric+clapton?page=2">3</a>

Nun würde ich gerne auf die Textteile dieser Art so einschlagen das ich da die Zahl bekomme die hinter page= steht in diesem Fall also die 2. Mein Ansatz sieht im moment so aus das ich folgenden Code fabriziert habe. Aber irgendwie liefert das count immer Null als Array länge zurück.


preg_match_all('/(<a href="\/search\/)([a-zA-Z+-]*)(\?page=)(?P<pages>\d+)/',$string,$match);


$keys = array_keys($match);

echo count($match[$keys[0]]);

vielleicht findet ja jemand an diesem verregneten Sonntag die Lust mal kurz über den Code herüber zu schauen und mir zu sagen was ich falsch mache ich wäre über einen entsprechenden Hinweis auf jeden Fall sehr dankbar.

viele Grüsse

Dan

Hallo hawkeye,

ich komm jetzt auf die Schnelle auf folgendes Patter:

(?<!a)(?<=page=).*(?=")

Ist nicht getestet und nur schnell zusammengereihmt, also Asche auf mein Haupt, wenn's nicht korrekt ist ;)

Greetz

Hallo,

ich habe das Problem mal heute morgen einen guten Bekannten von mir geschildert und er hat mir daruaf hin einen regulären Ausdruck zusammen gestellt. Der auf den ersten Blick deutlich besser aussieht als das was ich da zusammen gebastelt habe, aber leider findet er nur ein Ergebnis und ich kapiere ehrlich gesagt nicht warum. Da die links eigentlich alle gleich aufgebaut sind.

Der Ausdruck hat im moment die Form:


preg_match_all('/<a href="\/search\/.*\/?page=(?<pages>[\d]*)/',$string,$match);

//echo var_dump($match);

echo count($match['pages']);
[/PHP]

Aber vielleicht übersehen wir einfach auch nur etwas, es geht darum diese[1] Seite zu parsen.

Ich wäre über einen tipp auf jeden fall sehr dankbar, da ich schon eine ganze weile mit meinem Latein am Ende bin.

viele Grüsse

Dan

[1] Search for Artists and Albums on gnudb.org an alternativ place for the free CD database.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.