ugrás a tartalomhoz

Bizonyos szövegrészek linkelése

ark · 2007. Feb. 27. (K), 19.44
Üdv!

Remélem tud valaki segíteni, mert szeretném megtudni, hogyan is kell ezt megcsinálni, s akár több oldalamon alkalmazni.

Nos. Arról lenne szó, hogy szertnék meghatározni pár szót, vagy szókapcsolatot, amely ha megejlenik egy bizonyos szövegen belül, arra egyből kerüljön a honlapon egy bizonyos link.
Láttam már ilyet működés közben, (vagy legalábbis azt hiszem, hogy ilyen volt) és nagyon izgatna...

A segítséget előre is köszönöm.
 
1

str_replace

s_volenszki · 2007. Feb. 27. (K), 23.10
Szia!

Mennyire vagy otthon php-ben? Mert kelleni fog!

Ha a szöveged a $szoveg változóban van, és minden alma szót hivatkozásra cseréljük (alma.html) akkor:

$szoveg = str_replace("alma", "<a href=\"alma.html\">alma</a>", $szoveg);

Csinálhatsz a csereszavakból és hivatkozásokból tömböket is:

$szavak = array("alma", "körte", "barack");
$hivatkozasok = array("az alma hivatkozása", "a körte hivatkozása", "a barack hivatkozása");

$uj_szoveg = str_replace($szavak, $hivatkozasok, $szoveg);

http://hu2.php.net

s_volenszki
2

JavaScript + onload + regex-replace

Wabbitseason · 2007. Feb. 27. (K), 23.11
Attól függ, mit értesz az alatt, hogy "bizonyos szövegen belül", de a feladat megoldható például JavaScripttel.

OnLoad eseményre átnézed a dokumentumodat (pl. document.body.innerHTML, ha a teljes tartalomban garázdálkodsz), és ahol megtalálod a keresett szavakat, oda berakod a linkeket.

Egyszerű példa:

var aWords = ["poker", "viagra", "casino", "mortgage"];
var aLink = ["http://weblabor.hu", "http://weblabor2.hu", "http://weblabor3.hu", "http://weblabor4.hu"];
function hype()
{
  for (var i = 0, ii = aWords.length; i < ii; i++)
  {
    document.body.innerHTML = document.body.innerHTML.replace(
      new RegExp("\b" + aWords[i] + "\b", "ig")
      , "<a href=\"" + aLink[i] + "\">$0</a>");
  }
}
window.addEventListener("load", hype, false);
3

Kösz

ark · 2007. Feb. 28. (Sze), 16.08
A Javascriptes kódot nem tudtam, hova include-oljam a honlapon belül, az első viszont működik, jól.

Köszönöm.