login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met omzetten van php.

Offline pascalbianca - 27/11/2011 14:21
Avatar van pascalbiancaNieuw lid Hallo allemaal,

Misschien kan mij iemand helpen met het volgende.
Ik heb een db waar onder andere een kolom is met de titel description.
Deze druk ik uit als html op de pagina met de volgende regel.:
  1. echo '<p>' . nl2br(htmlspecialchars($result['description'],ENT_QUOTES)). '</p>';


Maar de code die ik plaats in die kolom description is eigenlijk een html code, dus met andere woorden zou ik die code wat in de kolom description staat in zijn geheel plakken in een lege pagina met extensie html, toont hij mij de tekst netjes op het scherm.

Maar wat ik wil is dat hij dus dat geen wat in bovenstaande code staat gewoon hetzelfde weergeeft in mijn huidig scherm als ik bv het wil lezen, dus bv in een inline frame of iets in een aparte frame.

Hopelijk is mijn vraag duidelijk beschreven 

Kan dit zo ja hoe?

23 antwoorden

Gesponsorde links
Offline vinTage - 27/11/2011 14:27
Avatar van vinTage Nieuw lid Ik snap je vraag niet goed ?

Je wilt je [ code ] gewoon in een frame plaatsen (leesbaar ipv geparsed) ?

Als je dat bedoeld (en ik neem aan dat je dat dan vaker wilt gebruiken) dan zou ik gewoon de src van dat iframe 'dynamisch' maken, dus simpel gezegd:

<iframe src="code.php?id=XX">...

En de src is dus een pagina die adhv het id de bijhorende code ophaalt.


Maar ik denk dat er VEEL mooiere oplosssingen bestaan...google eens.
Offline pascalbianca - 27/11/2011 15:05
Avatar van pascalbianca Nieuw lid Nou in mijn db staat in de kolom description bv.:

  1. <p>
  2. </head>
  3. </html>
  4. </p>
  5. <p>
  6. </p>
  7. <p>
  8. 8</p>


Nu heb ik dus een pagina waar al die dingen uit de db getoont worden netjes, alleen de description als ik die oproep via.:

  1. echo '<p>' . nl2br(htmlspecialchars($result['description'],ENT_QUOTES)). '</p>';


Krijg ik dus de tekst te zien.:
<p>
<html>
<head>
</head>
<body></body>
</html>
</p>
<p>
<title></title>
</p>
<p>
8</p>

i.p.v. gewoon de 8.
Offline vinTage - 27/11/2011 15:07 (laatste wijziging 27/11/2011 15:09)
Avatar van vinTage Nieuw lid aaaaaah

gewoon htmlspecialchars weghalen dan.

  1. echo '<p>' .$result['description']. '</p>';


maar mss/wrs is het beter als je strip_tags gebruikt:
  1. echo '<p>' . strip_tags($result['description']). '</p>';


Offline pascalbianca - 27/11/2011 15:24 (laatste wijziging 27/11/2011 15:32)
Avatar van pascalbianca Nieuw lid Jaaaaaaa dat is hem.

Hartelijk dank 

Nu zit ik alleen als ik bv iets tussen heb staan laat hij die taqs zien maar de tekst is niet vet.
In html geeft hij dat daadwerkelijk asl vet aan maar nu niet is dat ook met een simple code te laten zien?
Offline WouterJ - 27/11/2011 15:37
Avatar van WouterJ HTML gevorderde Je html code klopt dan niet. Een html tag mag maar 1 keer voorkomen en mag al helemaal niet in een paragraph tag staan...

En met HTML heb je de tags strong en b. Deze moet je gebruiken om tekst vet te maken. Verder kan je even letten op je typefouten, want er is niet veel uit te halen:
pascalbianca schreef:
(...)bv iets tussen heb (waartussen?) staan laat hij die taqs zien maar de tekst(...)
(...)dat daadwerkelijk asl (als)) vet aan maar nu niet is dat ook met een simple (simpele code) code (...)
Offline pascalbianca - 27/11/2011 16:17
Avatar van pascalbianca Nieuw lid ah oke.
Nu zit ik dus nog even over die dit is dus eigenlijk een code taq.
Kan ik dat ook oplossen met 1 of andere code?
Offline Pieter - 27/11/2011 18:47
Avatar van Pieter Gouden medaille

SEO guru
Kan je even je vraag beter formuleren wat je nog wenst? Ik raak er niet wijs uit na 5 keer lezen.
Bedankt door: WouterJ
Offline pascalbianca - 27/11/2011 20:15 (laatste wijziging 27/11/2011 20:15)
Avatar van pascalbianca Nieuw lid Ja ik zie het zelf ook, ben een deel vergeten in mijn vraag, lol.

Maar goed dan maar even opnieuw.
Nu stel ik heb een code taq erin staan, bv. [ code ][ /code ] hoe kan die highlighten zoals bv hier?
Is daar een speciale editor voor nodig of kan dat met alle editors?

Als voorbeeld gebruik ik de cheditor die hier te vinden is www.ckeditor.com in mijn pagina (nee tis geen forum wat ik gebruik) maar gewoon een scriptje waarmee ik dus iets in mijn db kan opslaan, bewerken of verwijderen.

Wat me ook nog een beetje dwars zit is dus wat eerder opgelost is hierboven als ik dus een woord vet maak deze niet vet word getoond als ik hem terug inlees, weet iemand daar de reden van?
Offline Pieter - 28/11/2011 12:18
Avatar van Pieter Gouden medaille

SEO guru
Puur voor het highlighten kan je GeSHi gebruiken: http://qbnz.com/highlighter/
Offline pascalbianca - 29/11/2011 07:14
Avatar van pascalbianca Nieuw lid Oke maar zit ik nog met 1 probleempje.
Ik heb dus nu de code die vanuit de db terug gelezen word netjes met deze code gefilterd.:
  1. echo '<p>' . strip_tags($result['description']). '</p>';


Maar als ik hem dan toon in het script laat hij het mij zo zien.:

Vaak wil je bv. je programma voorzien van een login systeem om je menu of extra opties te ontgrendelen. Hieronder staat een voorbeeld met Class, die ervoor zorgt als iemand 3 maal verkeerd het wachtwoord typt dat het programma zich afsluit. Natuurlijk kun je ipv van dat afsluiten ook een menu ontgrendelen of dat geen wat jij wilt. Er zijn uiteraard hierop ook weer diverse andere mogelijkheden, maar ik geef alleen hieronder 1 van de mogelijkheden.

Terwijl het eigenlijk met die html code zo moet uitzien.:

Vaak wil je bv. je programma voorzien van een login systeem om je menu of extra opties te ontgrendelen.
Hieronder staat een voorbeeld met Class, die ervoor zorgt als iemand 3 maal verkeerd het wachtwoord typt dat het programma zich afsluit.
Natuurlijk kun je ipv van dat afsluiten ook een menu ontgrendelen of dat geen wat jij wilt.
Er zijn uiteraard hierop ook weer diverse andere mogelijkheden, maar ik geef alleen hieronder 1 van de mogelijkheden.

Dus volgens mij doet hij niks met die html codes wat erin zitten, terwijl ik toch ook hier idem gewoon deze code gebruik om de inhoud te tonen.:

  1. echo '<p>' . strip_tags($result['description']). '</p>';


Hoe los ik dat op?
Offline WouterJ - 29/11/2011 08:50
Avatar van WouterJ HTML gevorderde PHP.net: Strip_tag: This function tries to return a string with all NUL bytes, HTML and PHP tags stripped from a given str.

En eventueel -mocht dit nog niet werken- PHP.net: nl2br gebruiken.
Offline pascalbianca - 29/11/2011 14:30
Avatar van pascalbianca Nieuw lid Ik heb de links bekeken wat je me gaf, maar krijg ik dan niet weer de output te zien wat ik eerst weg wou hebben?

Offline vinTage - 29/11/2011 15:42 (laatste wijziging 29/11/2011 15:43)
Avatar van vinTage Nieuw lid Dat is omdat niemand snapt wat je bedoeld 
Maar misschien (gok nr 30) wil je dit gebruiken:

  1. echo '<p>' . strip_tags($result['description'],"<br><p>"). '</p>';
Offline pascalbianca - 29/11/2011 15:50 (laatste wijziging 29/11/2011 16:25)
Avatar van pascalbianca Nieuw lid Tja probeer het maar eens tegoei te vertellen wat je in gedachte hebt ;)
Maar met jouw code werkt het dus naar behoren.

Maar zit ik nog met 1 vraagje.
Nu stel ik heb in die tekst wat hij met jouw code goed toont een link staan.
Die toont hij dus nu op deze manier.: [URL=........]link[/url]
Hoe krijg ik die dan als daadwerkelijke tekst die klikbaar is, uiteraard met de code van jouw ingelezen.

Toch alvast bedankt allemaal.
Offline vinTage - 29/11/2011 17:02 (laatste wijziging 29/11/2011 17:05)
Avatar van vinTage Nieuw lid Dat gaat niet, daarvoor moet die [url] tag eerst geparsed worden naar een <a ...

zoiets dus:
  1. $result = preg_replace("#\[url\](.*?)\[/url\]#i","<a href='\\1'>\\1</a>",$result['description']);
  2. $result = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#i","<a href='\\1'>\\2</a>",$result);
  3. echo '<p>' . strip_tags($result,"<br><p><a>"). '</p>';
Offline pascalbianca - 29/11/2011 17:30
Avatar van pascalbianca Nieuw lid Bedankt Vintage.
Offline vinTage - 29/11/2011 17:35 (laatste wijziging 29/11/2011 17:35)
Avatar van vinTage Nieuw lid Uit een van je vorige reactie maakte ik ook op dat je de bold tags ook wilt toestaan, WE gaan ervanuit dat je ondertussen zelf ook wat tijd in het doorlezen van de strip_tags functie hebt gestoken, maar voor het geval dat niet zo is....

strip_tags($om_te_zetten,"<toe><gestane><html><tags>")
Offline pascalbianca - 29/11/2011 18:34 (laatste wijziging 29/11/2011 18:35)
Avatar van pascalbianca Nieuw lid Ja en met veel proberen ben ik al behoorlijk ver gekomen.
Ik heb op dit moment jouw code uitgebreid tot deze resultaat.:

  1. echo strip_tags($result['description'],"<a><em><strike><u><sub><sup><img><strong><br><p>"). '</p>';


En werkt super goed.

Zit alleen nog met die code taqs een beetje op mijn maag bv.: [ code ]........[ /code ]

Door Pieter werd deze link al aangehaald.: Puur voor het highlighten kan je GeSHi gebruiken: http://qbnz.com/highlighter/
Maar helaas kom ik er niet mee overweg  
Offline WouterJ - 29/11/2011 19:01
Avatar van WouterJ HTML gevorderde Je kan ook andere -javascript- highlighters gebruiken. Een van de meest gebruikte is: http://alexgorbatchev.com/SyntaxHighlighter/
Offline vinTage - 29/11/2011 19:49
Avatar van vinTage Nieuw lid
  1. $result = preg_replace("#\[url\](.*?)\[/url\]#i","<a href='\\1'>\\1</a>",$result['description']);
  2. $result = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#i","<a href='\\1'>\\2</a>",$result);
  3. $result = preg_replace("#\[code\](.*?)\[/code\]#ie", "htmlentities('\\1')", $result);
  4.  
  5. echo '<p>' . strip_tags($result,"<br><p><a>"). '</p>';
Offline pascalbianca - 29/11/2011 21:10
Avatar van pascalbianca Nieuw lid Ja dan strip ik hem maar ik wil net zoiets als bv hier wat tussen [ code ] staat ook gehighlight word zoals Waldio al zegt alleen heb ik problemen om het aan de praat te krijgen.
Offline vinTage - 29/11/2011 21:21 (laatste wijziging 29/11/2011 21:24)
Avatar van vinTage Nieuw lid Ik snap je hele probleem echt niet meer hoor, als je al ubb tags gebruikt [ url ], [ code ] etc, WAAROM heb je dan al die <html><title><p> tags etc in je source..??
Je hebt ook al een aantal keer gezegd dat het opgelost is, maar blijkbaar ook niet..

Begin nou maar eens met je vraag fatsoenlijk/duidelijk/omschrijvend weg te plempen zodat we onze tijd niet zitten te verdoen 
Offline WouterJ - 30/11/2011 08:03
Avatar van WouterJ HTML gevorderde Wil je eigenlijk gewoon een script hebben die tags ondersteund, zoals het hier op het forum gebeurd?

Kijk dan eens naar een UBB parser, bijv. tinyMCE.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.399s