[php] str_replace in postings

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MagicTempest
  • Registratie: Maart 2001
  • Laatst online: 11:40
Hallo,

Ik ben op dit moment bezig om een formulier te maken waar je het eea in kan zetten (in een knowledge base)

Gezien het feit dat het mogelijk is dat je in je postings wel eens dingen met html uit wil leggen (dus zo dat je de tags kan zien in de post) Maar ook wil je html gebruiken om de opmaak een beetje ok te maken (lists e.d)

PHP:
1
2
$content = str_replace('\<', '&lt;', $content);
$content = str_replace('\>', '&gt;', $content);


Dat werkt allemaal leuk. Echter moet het ook mogelijk zijn om wanneer je je bericht wil updaten hetzelfde gebeurt.

Wanneer je dan je update post moet je eerst weer voor al die tags die je wil laten weergeven een "\" zetten. Wanneer je er 1 vergeet kan je het dus weer opnieuw doen, en dan weer _alle_ tags die je wilt weergeven veranderen.

Dat moet sneller kunnen, iemand enig id?

Life is like spaghetti. It's hard until you make it. - Tommy Cash -


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

optie 1) alleen de str_replace doen voor je het output naar de client
optie 2) wel vantevoren converteren, maar beide in de database opslaan
optie 3) terugconverteren voor het editten

gebruik trouwens htmlentities, die is daarvoor gemaakt

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Je kan ook gebruik maken van strip_tags. Dan kan je aangeven welke tags wel mogen. BV. <b></b>. De html gooi je ook in je database en dan hoef je bij het editten alleen maar te displayen zoals het in de database staat.

Acties:
  • 0 Henk 'm!

  • MagicTempest
  • Registratie: Maart 2001
  • Laatst online: 11:40
Het is maar een heel klein stukje van de bewerkingen op $content die ik liet zien, strip_tags wordt ook al gebruikt, maar voor die paar uitzonderingen moet ik ze anders opvangen :)

PHP:
1
2
3
4
5
6
$titel = strip_tags($_POST[titel]);
$content = $_POST[inhoud];
$content = nl2br($content);
$content = str_replace('\<', '&lt;', $content);
$content = str_replace('\>', '&gt;', $content);
$content = strip_tags($content, '<b><i><u><img><ul><ol><li>');


Ik zal nog ff gaan kijken bij die htmlentities.

Life is like spaghetti. It's hard until you make it. - Tommy Cash -


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ja dat heeft ook weinig nut. Als je eerst de < en de > gaat vervangen, dan is er geen tag meer om te strippen, denk je ook niet? :)

Ook doe je die str_replace nadat je alle newlines hebt vervangen door <br>'s, zodat die ook vervangen worden. Ik zou dat dus omdraaien

Bovendien moet je de quotes ook doen, als je het netjes wilt doen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MagicTempest
  • Registratie: Maart 2001
  • Laatst online: 11:40
Zoals je ziet vervangt hij het alleen wanneer hij het volgende tegenkomt: \< en \> dat is wat anders als < en >

Life is like spaghetti. It's hard until you make it. - Tommy Cash -


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Idd, ik las het verkeerd. Dacht even dat er dubbele quotes stonden. Mijn fout :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1