Kom ihåg mig?
Home Menu

Menu


Hjälp med preg i PHP.

Ämnesverktyg Visningsalternativ
Oläst 2008-09-19, 16:28 #1
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Hej!

Jag har ett litet problem med preg_match_all i php.
Eller snarare, jag skulle behöva hjälp med hur man konstruerade en regexp för att matcha länkar.

Jag har en sträng som innehåller flera rader av länkar i följande struktur:
Kod:
<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar.
<a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>.
Jag vill plocka ur title="(.*)" och bygga en array av dom.
Hur gör man?

Dvs, få ett resultat likt detta:

Kod:
Array (
    0 = "Länk 1 title"
    1 = "Länk 2 title"  
)
Kod:
preg_match_all('/\<a href="([^"]+)" title="([^"]+)">([^"]+)<\/a>/', $output, $matches);
har jag försökt med, fungerar dock inte.
Jag har slut på idéer.. Hur får man detta att fungera?

Hjälp mig!

// Jim
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-19, 17:21 #2
Silodon Silodon är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2005
Inlägg: 38
Silodon Silodon är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2005
Inlägg: 38
Är det någonting sånt här du är ute efter eller missförstår jag?

Kod:
<?php

$str= '<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar.
	<a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>.';

preg_match_all("/title=\"(.*?)\"/",$str,$matches);

print_r($matches);

?>
Retunerar:

Kod:
Array
(
  [0] => Array
    (
      [0] => title="xxxx"
      [1] => title="Länk 1 title"
      [2] => title="xxxx"
      [3] => title="Länk 2 title"
    )

  [1] => Array
    (
      [0] => xxxx
      [1] => Länk 1 title
      [2] => xxxx
      [3] => Länk 2 title
    )

)
Silodon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-19, 19:30 #3
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Din kod fungerar helt perfekt. Men ett par undantag.
Slutarrayn blir väldigt rörig, då den plockar ut "xxxx" också.

Jag kan ta bort varannan rad i arrayn, men det blir inte riktigt helt säkert, för ibland har jag upptäckt att det saknas "xxxx" på vissa rader, och tvärt om.

Finns det nåt sätt att plocka ut bara den ANDRA länken's title, och skippa den första helt?

// Jim
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-09-19, 20:14 #4
Silodon Silodon är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2005
Inlägg: 38
Silodon Silodon är inte uppkopplad
Nykomling
 
Reg.datum: Feb 2005
Inlägg: 38
Om din data ser exakt likadan ut som ditt exempel förutom title-taggarna så borde detta fungera.

Kod:
<?php

$str= '<a href="/xxx" title="xxxx">12312</a> - <a href="exempellänk.php" title="Länk 1 title">haha, jasså?</a>, liten kommentar.
	<a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php" title="Länk 2 title">absolut sant</a>.
<a href="/xxx">12312</a> - <a href="exempellänk.php" title="Länk 3 title">haha, jasså?</a>, liten kommentar.
	<a href="/xxx" title="xxxx">12312</a> - <a href="exemp_ellnk.php">absolut sant</a>.';

preg_match_all("/ - <a(.*?) title=\"(.*?)\"/",$str,$matches);

print_r($matches);

?>
Retunerar:
Kod:
...

 * *[2] => Array
 * * * *(
 * * * * * *[0] => Länk 1 title
 * * * * * *[1] => Länk 2 title
 * * * * * *[2] => Länk 3 title
 * * * *)
)
Silodon är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:12.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017