Autor Zpráva
Crashpc
Profil
hoja všem :-)

prosím o pomoc s poměrně triviálním problémem:
mám článek, zastoupený pravděpodobně výrazem " $line['text'] " (omluvte mě, neumím PHP, ale jsem dobrý kutil :-) )

níže ve funkci preview mám funkci useknurtí určitého počtu písmenek pro preview. asi takhle:

$text = substr($line['text'],0,200);

a pak pomocí echo $text... zobrazim preview s useklou částí.

problém je, že v preview mám obrázek - <img blablabla............. />
a kód toho obrázku se započítává do těch useknutejch písmenek, takže když vložím dva-tři obrázky, tak už v preview není vidět žádný text protože ho celý seže kód těch obrázků - je zahrnut v té funkci substr.....

tudíž bych viděl reálné řešení ve vložení výrazu který by z $line['text'] odstranil vnitřek tagů < > včetně nich nebo alespoň <img...../>

schematicky takto:

$text = $line['text'];
$odebrat_tagy = sekvence znaků k odebrání
$text2 = $odebrat_tagy z $line['text'];
$preview = substr($text2,0,200);

echo $preview ;

je něco takového možné? poradil by někdo se sestavením takové funkce nebo něčeho adekvátního?
Str4wberry
Profil
Tu máš, kutile
Crashpc
Profil
narážíš na tohle? : strip_tags

problém je že mi to nejen vyfiltruje html značky ale tím jak je vyfiltruje tak uplně odstraní obrázky, já je tam ale potřebuju zachovat...

//aa už jsem si všimnul. hezká funkce ale netušim co s ní. cop&paste je logicky k ničemu a žádnou kreativitu neřekej. neumím tvořit. zatím jen šťourat.... byl jsem rád že jsem tam tu funkci nějak dopravil aniž by mi to zbouralo web, ale co z toho....
Str4wberry
Profil
PHP manuál → strip_tags()
Crashpc
Profil
to právě nemůžu. páč když dám preview = substr(strip_tags($text),0,400); tak mi to nezobrazí při výpisu echo $preview žádný obrázky, přestože to správně usekne ten správnej počet písmenek pro preview.


//vyřešeno - známej....
zjednodušeně:

$pole=explode(">",$text);
$texu = strip_tags($text);

echo stripslashes($pole[0]).'>'.stripslashes($texu) ;

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