Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkistä osoitteen karsiminen

Axuu [28.07.2010 12:10:40]

#

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

Antti Laaksonen [28.07.2010 12:17:58]

#

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>";
?>

Axuu [28.07.2010 12:28:36]

#

Kiitos toimii! Täytyy opetella nuo säännölliset lausekkeet

pistemies [29.07.2010 14:04:15]

#

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?

jimi-kimi [29.07.2010 14:11:25]

#

@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

Teuro [29.07.2010 14:20:35]

#

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>";
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta