Autor | Zpráva | ||
---|---|---|---|
Raek Profil |
#1 · Zasláno: 26. 4. 2011, 09:21:37
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 * |
#2 · Zasláno: 26. 4. 2011, 09:26:39
|
||
Raek Profil |
#3 · Zasláno: 26. 4. 2011, 09:34:49
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 * |
#4 · Zasláno: 26. 4. 2011, 09:38:27
Raek:
Ta funkce nahradí všechny výskyty zadaného kusu textu a nahradí to tím, co zadáš. Tagy neřeš. |
||
Raek Profil |
#5 · Zasláno: 26. 4. 2011, 09:41:51
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 * |
#6 · Zasláno: 26. 4. 2011, 09:45:47
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 * |
#7 · Zasláno: 26. 4. 2011, 09:46:53
(odstranit = nahradit prázdným textem)
|
||
Raek Profil |
#8 · Zasláno: 26. 4. 2011, 09:47:53
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 , sm>mmaž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 |
#10 · Zasláno: 26. 4. 2011, 09:57:44
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 |
#11 · Zasláno: 26. 4. 2011, 09:58:40
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 |
#12 · Zasláno: 26. 4. 2011, 10:04:40 · Upravil/a: Raek
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 ... |
||
Časová prodleva: 14 let
|
0