Autor Zpráva
milbr
Profil *
Pěkný večer,
omlouvám se nějak mi to už nemyslí a nemohu tady nic podobného najít.

Potřeboval bych v řetězci najít určité slovo nebo výraz a to nahradit odkazem.

Použil jsem str_replace("Okouzlující pohádková levandule", "<a href=\"odkaz\">Okouzlující pohádková levandule</a>", "".$obsah_produkt['vune_popis']."");

Vše je v pohodě ale potřeboval bych zahodit zbytek textu.

Moc děkuji a pěkný večer Milan
JanJanuska
Profil
Chceš nahradiť text v reťazci odkazom a potom aj tak zbytok reťazca odstrániť?

Nestačilo by zistiť, či sa daný reťazec v texte nachádza a potom len vytvoriť odkazy?
napr...

$text = 'Okouzlující pohádková levandule!, to je paráda...';
$retazec = 'Okouzlující pohádková levandule';

if (substr_count($text, $retazec) > 0)
   $odkaz = '<a href="link">' . $retazec . '</a>';

AM_
Profil
Výsledek algoritmu, který popisuješ, bude vždy
"<a href=\"odkaz\">Okouzlující pohádková levandule</a>"
, takže to tam můžeš dát napevno jako řetězcovou hodnotu ne?
milbr
Profil *
JanJanuska
AM_
Nejprve se omlouvám za pozdní reakci a moc děkuji za odpověď.
Bohužel mi to nějak nefunguje. Pokusím se nastínit situaci ještě jednou.

V DB mám takovýto zápis:
Francouzské pižmo*Okouzlující pohádková levandule*Madagaskarská vanilka*Pačuli-levandule-vanilka*Průzračný oceán*Mystický jantar

Pro jiný produkt je zápis např.
Sen letní noci*Divoký indonéský jasmín*Jablko-levandule*Omamný květ citrusu*Toužebné lesní plody*Provensálská vanilka

Já bych potřeboval projít zápis zjistit zda se tam vyskytuje určitý výraz a přiřadit mu odkaz.
Výše uvedený str_replace mi přiřadí odkaz ale vypíše se zbytek zápisu.
Možná by šlo použít explode a porovnávat zda je tam to či ono.
Mohl bych pro vůně udělat samostatnou tabulku ale tomu bych se rád vyhnul, protože DB je hotová a dalo by to hodně práce.

Moc Vám všem děkuju za pomoc. a přeju pěkný večer.
Milan
JanJanuska
Profil
Ak som to správne pochopil, tak spomínaná tabuľka by bola najlepšie riešenie, takáto DB je navrhnutá zle (pravdepodobne) a v neskoršej dobe ťa to môže stáť ešte oveľa viac práce ako teraz.
Inak ten zdroják čo som poslal by mal riešiť tvoj problém, prípadne by sa tam hodila manipulácia s poľom a cyklom, podľa potreby (ak hľadáš reťazcov viac).
Ešte raz to sem pre dám, trochu inak...
$text = 'Francouzské pižmo*Okouzlující pohádková levandule*Madagaskarská vanilka*Pačuli-levandule-vanilka*Průzračný oceán*Mystický jantar';
$hladany_retazec = 'Okouzlující pohádková levandule';

if (substr_count($text, $hladany_retazec) > 0) // ak je v texte hladany retazec aspon raz, tak:
  echo '<a href="link">' . $hladany_retazec . '</a>'; // vypise hladany retazec do odkazu
AM_
Profil
milbr
Buď to popisuješ nějak špatně nebo je to skutečně takhle:
máme řetězec řekněme X
a ty chceš funkci:
Obsahuje řetězec X podřetězec "Okouzlující pohádková levandule" ?
Ano: vrať odkaz na "Okouzlující pohádková levandule" (tedy něco jako <a href="levandule">"Okouzlující pohádková levandule"</a>
Ne: vrať prázdný řetězec

je to tak? Pak s tím řetězcem skutečně nemusíš nijak pracovat, a prostě pokud obsahuje daný podřetězec, vypíšeš pouze odkaz, nic nebudeš nahrazovat.

JanJanuska má pravdu, databáze je navrhnutá hrozně, DB je právě od toho, aby každá položka měla svou pozici, a nemusel si všechno cpát do jednoho záznamu a nějakým znakem oddělovat.
milbr
Profil *
AM_
JanJanuska

Moc děkuju za odpověď a vysvětlení.
Samostatná tabulka bude asi nejlepší řešení, kterému se nevyhnu. Potřeboval jsem nějaké rychlé řešení které mi od JanJanuska zatím funguje a za které děkuji.

Vše vyřešeno a pěkný den všem přeje Milan

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0