URL's op pagina zoeken

Pagina: 1
Acties:

  • BARO
  • Registratie: Mei 2003
  • Laatst online: 20:28
Ik ben nu al een tijd aan het zoeken naar een functie in PHP die bijvoorbeeld URL's op een pagina kan opzoeken en in een array/string kan plaatsen.

Als je dan een pagina hebt met <a href="http://www.url.nl">Bladiebla</a>, dat je dan http://www.url.nl én Bladiebla terugkrijgt.

(beetje vergelijkbaar met:


PHP:
1
2
3
<?php
 $msg = eregi_replace("\[url\][[:space:]]*(http://)?([^\\[]*)[[:space:]]*\[/url\]","<a href=\"http://\\2\" target=\"_blank\">http://\\2</a>", $msg);
?>
maar dan moet ie de tekst niet vervangen, maar teruggeven als variabele.)

Hoe kan ik dit het beste uitvoeren?

[ Voor 0% gewijzigd door BARO op 26-05-2008 20:22 . Reden: hm, titel moet veranderd worden in [PHP] URL's op pagina zoeken ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Al eens hier gekeken :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • BARO
  • Registratie: Mei 2003
  • Laatst online: 20:28
Ja, had daar al gezocht naar een functie hiervoor, maar heb niets kunnen vinden. Ook geprobeerd met preg_match() ( en array_push() ), maar daarmee kun je volgens mij alleen een output krijgen als true en false, en ik wil juist echt het stuk tekst hebben.

  • ibmos2warp
  • Registratie: Januari 2007
  • Laatst online: 20-11-2023

ibmos2warp

Eval is Evil

Preg_match kan je toch gewoon gebruiken? Je moet het derde argument, matches meegeven, die array wordt dan gevult, en kan je dan gebruiken :).

Ik weet alles van niks
Vind Excel ongelovelijk irritant.


  • compufreak88
  • Registratie: November 2001
  • Laatst online: 02-05 17:51
preg_match_all is beter geschikt. preg_match houdt het na 1 match voor gezien, terwijl preg_match_all ze allemaal matched.

De regex die je daarboven hebt staan, die matched alleen ubb style urls. Je zult dus echt moeten matchen op <a href..

[ Voor 27% gewijzigd door compufreak88 op 27-05-2008 06:55 ]


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 00:02

Onbekend

...

Je kan niet altijd matchen met "<a href" omdat deze situatie ook voor kan komen: "<a class="xxx" href"

De methode om te zoeken is om eerst te zoeken naar "<a" en dan zoeken naar de eerstkomende "href=". Let er wel op dat je hoofdletter onafhankelijk moet zoeken. Bij links die beginnen met een hekje moet je de originele webpaginanaam er voor zetten.

Speel ook Balls Connect en Repeat


Verwijderd

Je kan ook gebruik maken van het DomDocument model. Daar kan je een html pagina inladen. Daar gooi je een xpath query overheen om de anchors uit de html te filteren. Werkt erg mooi en je kan daarna alle attribute en node values opvragen van de gevonden a tags.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Onbekend schreef op dinsdag 27 mei 2008 @ 07:49:
Bij links die beginnen met een hekje moet je de originele webpaginanaam er voor zetten.
En dan laat je <base href=""> en dat soort zaken nog buiten beschouwing ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 10-10 13:28
Als je gaat "prutsen" met reguliere expressies, moet je natuurlijk er ook even aan denken dat je je URL's gaat resolven. Vaak heb je op een webpagina namelijk een url naar bv ../bla.html , wat naderhand niet bruikbaar is als je het wilt gebruiken ;)
Pagina: 1