Jos linkillä on määritetty target silloin linkki pysyy normaalina, mutta jos ei targettia ole määritetty niin linkki muunnetaan index.php?s='linkki' muotoon. Tässä siis linkin muuntaminen ilman targettia.
$tekstit = preg_replace("/href=\"(.*?)\"/", "href=\"index.php?s=$1\"", $tekstit);
Mutta kuinkas sitten jos samassa html tiedostossa on linkki joka sisältää targetin ja linkki joka ei sitä sisällä?
Tämän tarkoituksena siis tietenkin se, että linkit joidenka kuuluu aueta uuteen ikkunaan toimisivat oikein eivätkä saisi index.php?s=... urlia.
Tuota jo jonkin aikaa järkeyillyt, mutta ei tule mieleen mitään järkevää raitkaisua.
<?php $tekstit = "<a href=\"temp.php\">Temp</a> - <a href=\"temp2.php\" target=\"hello\">Temp2</a>"; $tekstit = preg_replace("/href\\=\"(.*)\"\\>/", "href=\"index.php?s=\\1\">", $tekstit); echo $tekstit; ?>
En nyt parempaa jaksa väsätä, joku regexpvelho varmaan saa tuosta kädenkäänteessä versio joka tukee esim. class määreitä.
Aivan ei tullutkaan mieleen tuota :) Mutta tuossa on nyt ehtona, että target on viimeisin määrite. Nämä sivut eivät jää minun päivitettäväkseni vaan konttori tätienm, joten ohjelma on luultavasti dreamweaver tai frontpage. Eli jos jollakulla olisi tapa tehdä tätä ilman tuota 'Target'in viimeisimpinä oloa niin olisi hyvä.
https://www.ohjelmointiputka.net/oppaat/opas.
http://cs.stadia.fi/~kuivanen/linux/regexp.php
http://www.sivut.org/perl/oppaat/merkkijonohaku.
Oppaisiin tutustuttu jo ennemmin, mutta ei tässä urleja kyselty. Yhä samaa asiaa yritän ratkaista. Asialla myös vähän kiire, joten ketään regexp taituria täällä? Vielä selvennyksenä.
Urli tekstissä:
<a href="sivu.htm">likki</a>
Muunnetaan phpssä seuraavasti:
preg_replace("/href=\"(.*?)\"/i", "href=\"index.php?s=$1\"", $tekstit);
Sitten pitäisi linkit jotka aukeavat uuteen ikkunaan jättämään ylemmän php rivin väliin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.