Autor Zpráva
Raek
Profil
Ahoj,

mám takový problém. V proměné $obsah mám vypis dat z databáze. Tedy html tagy, text článku. Potřeboval bych proměnou $obsah projít a nalést všechny tagy <img ....> a posléze v nich nahradit cestu k obrázku nebo je alespoň z řetězce odstranit. Věděl by někdo jak na to? Díky ...
okolojdouci
Profil *
http://cz.php.net/manual/en/function.substr-replace.php
Raek
Profil
okolojdouci:
Díky, ale jak naleznu ten tag <img>, popřípadě když jich je tam víc a potřebuju nahrati všechny?
okolojdouci
Profil *
Raek:

Ta funkce nahradí všechny výskyty zadaného kusu textu a nahradí to tím, co zadáš. Tagy neřeš.
Raek
Profil
okolojdouci:
Mohl bys mi sem pls napsat, jak to udělat když mám v $obsah několik odstavců s textem a několik odstavců s <img> a potřebuju dát pryř pouze ty img? Nějak na to nemohu přijít ...
okolojdouci
Profil *
Raek:
v nich nahradit cestu k obrázku nebo je alespoň z řetězce odstranit.

Už tohle znělo dost neurčitě.
Jestli máš v textu několik výskytů stejného řetězce a chceš je odstranit, použij tu odkázanou funkci. Měl bys to zvládnout.

Jestli toho, co chceš odstranit, je víc variant, tak přesně popiš, co chceš.
okolojdouci
Profil *
(odstranit = nahradit prázdným textem)
Raek
Profil
okolojdouci:
V $obsah je například

<p>text odstavce 1</p>

dále pak

<p><img></p> - ten chci dát pryč

dále pak

<p>text odstavce 2</p>

....
....

Chci dát pryč z proměné $obsah všechny ty P kde je IMG a pak to celé zobrazit ....
okolojdouci
Profil *
Omlouvám se, ta správná funkce je http://cz.php.net/manual/en/function.str-replace.php , smmmažte mě prosím někdo v #2.
Moderátor Chamurappi: Tím by se narušil kontext dalších příspěvků, ne? Nevím, nechávám…

Raek:
$vystup = str_replace($nahraditco, $nahraditcim, $puvodnitext);


Opakuju: popiš přesně co chceš.
Smazat <p><img></p> můžeš výše uvedeným, ale spíš bych řekl, že tam budeš mít <p><img src='obrazek.jpg'></p> a těch názvů obrázků bude víc. S tím ti poradí místní odborníci na regulární výrazy.
Raek
Profil
No ano samozřejmě tam mám <p><img src='obrazek.jpg'></p> a je tam toho víc, těžko tam budu mít pouze tag <img>. Potřeboval bych prostě všechny obrázky z celého toho textu dát pryč. Všude kde je img v proměné $obsah dát pryč ... Díky za tu funkci ...
Raek
Profil
Pokud mám být tedy konkrétní:

<p style="text-align: center;"><img title="Adidas" src="/archiv/zbozi_23266_no1.jpg" alt="Adidas" width="300" height="438" /> <img title="Adidas" src="/archiv/zbozi_23879_no1.jpg" alt="Adidas" width="300" height="438" /></p>

To chci dát pryč ...
Raek
Profil
Tak jsem to nakonec vyřešil tímto:

$obsah = preg_replace("/<img[^>]+\>/i", " ", $obsah);

Zatím mi tam zůstávají sice prázdné odstavce, ale to už nějak dořeším ...

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