login  Naam:   Wachtwoord: 
Registreer je!
 Forum

zoeken in tekst

Offline W0etah - 10/06/2008 21:34
Avatar van W0etahPHP beginner Ik heb een groot stuk tekst waaruit ik een bepaald stuk wil uithalen.

Stel dat er ergens in de tekst dit staa:
?query=roool&test=qsdf

Nu zou ik daaruit enkel die "roool" willen uithalen.
Ik heb al gekeken met preg_replace, strrchr
Maar ik vindt nooit hoe, kan iemand mij misschien helpen?

13 antwoorden

Gesponsorde links
Offline Martijn - 10/06/2008 22:38
Avatar van Martijn Crew PHP ik neem aan dat je dat stukje highligthed ofzo wilt?

$string = str_replace($query,"<b>".$query."</b>",$string);
Offline W0etah - 10/06/2008 23:32 (laatste wijziging 11/06/2008 18:53)
Avatar van W0etah PHP beginner ja en nee.

Het zit zo, ik laat een webpagina in via file_get_contents(), daarna met htmlentities() zodat ik de brondcode zie.

In die pagina staan verschillende links
<a href="?p=test">dlf</a>
en dan wat verder nog
<a href="?p=qsdfjm">qmsdkfj</a>

Het is dus de bedoeling dat ik alles wat na "?p=" vindt en dat in een variabele steek.
dus eigenlijk alles wat tussen "?p= en "> zit.
Offline Koen - 11/06/2008 18:58
Avatar van Koen PHP expert PHP.net: preg_match
met de parameter $matches :-)
Offline W0etah - 11/06/2008 19:12
Avatar van W0etah PHP beginner Ik zie wel hoe ik een bepaald woord moet zoeken, maar hoe kan ik zoeken wat ik wil ?

Dus alles wat tussen "?p= en " staat?
Offline Martijn - 11/06/2008 19:34
Avatar van Martijn Crew PHP example 3 lijkt een beetje wat je wilt op de site die sliphead gaf
Offline urqbz - 11/06/2008 19:59 (laatste wijziging 11/06/2008 20:00)
Avatar van urqbz PHP interesse Dat doe je zo:
  1. <?php // kleur
  2. $link = "<a href=\"?p=qsdfjm\">qmsdkfj</a>";
  3. $link_explode = explode ("?p=", $link);
  4. $result = $link_explode[1]; // dan doe je er mee wat je dan ook maar van plan was
  5. ?>


Edit: Link vergeten te escapen
Offline W0etah - 12/06/2008 00:10
Avatar van W0etah PHP beginner @urqbz, bedankt, maar wanneer ik die $result toon geeft hij zit:
qsdfjm">qmsdkfj

terwijl ik enkel die "qsdfjm" moet hebben.
Offline djb - 12/06/2008 00:29
Avatar van djb PHP beginner
  1. <?php
  2. $link = '<a href="?p=qsdfjm">qmsdkfj</a>';
  3. $link_explode = explode ("?p=", $link);
  4. $link_explode = explode('"',$link_explode[1]);
  5. $result = $link_explode[0];
  6. echo $result;
  7. ?>

dat moet de job doen 
Offline Gerard - 12/06/2008 01:22
Avatar van Gerard Ouwe rakker
  1. <?php
  2.  
  3. $tekst = '<table>'
  4. . ' <tr>'
  5. . ' <td><a href="?p=test">Test 1</a></td>'
  6. . ' <td><a href="www.google.nl">Google</a></td>'
  7. . ' <td><a href="/module/news/add">Nieuws Toevoegen</a></td>'
  8. . ' </tr>'
  9. . '</table>';
  10.  
  11. preg_match_all('~<a href="(.*?)">(.*?)</a>~si', $tekst, $matches);
  12.  
  13. echo '<pre>', htmlspecialchars(var_export($matches, true)), '</pre>';
Offline W0etah - 12/06/2008 13:09
Avatar van W0etah PHP beginner bedankt, je voorbeeld heeft mij heel wat vooruit geholpen.

Maar nog 1 probleem, ik heb deze link:
<a href="/watch?v=J_T2nj-sczo">J_T2nj-sczo</a>

wanneer ik die preg_matc_all dan verander naar:
preg_match_all('~<a href="/watch?v=(.*?)">(.*?)</a>~si', $tekst, $matches);

geeft hij niks meer terug, zonder die "?v=" krijg ik wel het juiste te zien
Offline marten - 12/06/2008 13:36
Avatar van marten Beheerder Gebruik gewoon PHP.net: parse_url ?
Offline maigel - 12/06/2008 15:51 (laatste wijziging 12/06/2008 15:53)
Avatar van maigel PHP beginner Als je PHP.net: parse_url gebruikt zal hij toch query=roool&test=qsdf geven, niet?
Dan moet je nog met preg_replace gaan werken.
Dat denk ik toch, maar mijn php kennis is nu ook niet zo uitgebreid...
Offline Wim - 12/06/2008 18:05
Avatar van Wim Crew algemeen PHP.net: explode op & en evt op =?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.227s