Diskuze: Nefunguje strip_tags
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
A nejde to vypsat v pohledu?
strip_tags($mise['text'])
Myslím že to taky patří do pohledu.
Mám dojem, že funkce strip_tags bere parametr jako hodnotu a vrací nový ořezaný string, tzn. potřebuješ ho uložit do proměnné:
$mise = strip_tags($mise);
Jen ještě technická poznámka - strip_tags() jako argument bere string,
tvá proměnná $mise zřejmě bude pole.
Pak se to dá aplikovat třeba takto
foreach ($mise as &$zaznam) {
$zaznam = strip_tags($zaznam);
}
nebo by to mělo jít i takto
array_map("strip_tags", $mise)
Vyzkoušel jsem všechno možný, ale pořád to dělá tagy do výpisu na stránce, ale při print_r z kontroleru ne.. Pro jistotu jsem přímo do modelu výsledek ořezal od tagů, ale zjevně marně :/
Jooo, mám to! V pohledu jsem u výpisu textu přidal toto:
html_entity_decode($mise['text'])
a už to jede bez HTML znaků!
Díky všem za snahu, určitě jejich řešení někdy využiju někde jinde
Lepší by bylo v kontroleru toto, nebo něco obdobného, ne?
$mise = html_entity_decode(strip_tags($mise));
Do pohledů moc logiku nestrkej (což dekódování je), spíš tam dávej jen čistě proměnou s daty pro výpis.
O to jsem se snažil, ale funguje to pouze, když do výpisu foreach dám u >mise['text'] před to tu html_entity_decode, jinak to nefunguje...
Jo už vidím... $mise je pole polí.
No, tady bys to teoreticky mohl dělat tak, že to dáš do pohledu, ale pak je zase problém, že máš v pohledu menší logiku, což není nikdy moc dobré - zapomeneš, mícháš to atp.
V kontroleru, pokud potřebuješ takto upravit všechno pro každou misi bych použil něco jako kód níže. Pokud to chceš jen pro ten ['text'], pak ten foreach uvnitř samozřejmě nepotřebuješ a použiješ jen $jedna['text'].
foreach ($mise as $jedna) {
foreach ($jedna as $key => $value) {
$jedna[$key] = html_entity_decode(strip_tags($jedna[$key]))
}
}
Co se týče výkonu, nevím, ale pravděpodobně to nebude mít nějaký zásadní vliv a vše si udržíš v kontroleru. A možná bys to mohl šoupnout rovnou do modelu (záleží na situaci), tedy $spravceUzivatelu->vyberMise();...
Zobrazeno 9 zpráv z 9.