Miten saisi linkistä eroteltua osoite sekä sen tekstin
Eli Toi:
<td><a href='www.esimerkkisoite.php'>Ompas mukava sivu</a></td>
Pitäisi saada näin:
$muuttuja1 = www.esimerkkisoite.php
$muuttuja2 = Ompas mukava sivu
Kieli: php
Yksi ratkaisu on säännöllinen lauseke:
<?php $teksti = "<td><a href='www.esimerkkisoite.php'>Ompas mukava sivu</a></td>"; preg_match("/<a href='(.*?)'>(.*?)<\/a>/", $teksti, $osat); echo "Osoite: " . $osat[1] . "<br>"; echo "Otsikko: " . $osat[2] . "<br>"; ?>
Kiitos toimii! Täytyy opetella nuo säännölliset lausekkeet
Entäs jos linkki onkin kirjoitettu näin, lainausmerkein:
<a href="www.esimerkkisoite.php">Ompas mukava sivu</a>
Millainen tuo säännöllinen lauseke pitäisi olla, jotta toimisi molemmilla kirjoitustavoilla, hipsuilla ja lainausmerkein?
@Pekka_Mansikka: Lueppas Antin esimerkki kymmenen kertaa ajatuksella ja tule kysymään uudelleen, jos jää vielä epäselvää. Vinkki: Mikä on muuttunut alkuperäisen viestin esimerkin ja oman viestisi esimerkin välillä :)
EDIT: Lisää lukemista: https://www.php.net/manual/en/function.preg-match.php#98310
Yksi tapa on lisätä molemmat vaihtoehdot mukaan.
<?php $teksti = "<td><a href=\"www.esimerkkisoite.php\">Ompas mukava sivu</a></td>"; preg_match("/<a href=['\"](.*?)['\"]>(.*?)<\/a>/", $teksti, $osat); echo "Osoite: " . $osat[1] . "<br>"; echo "Otsikko: " . $osat[2] . "<br>"; ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.