Toon posts:

[php]volgorde textoperaties UBB/nl2br/highlighting

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een lastig probleem! Ik wil dat de bezoekers van mijn Forum geen HTML kunnen gebruiken, maar wel de PHP Color Coding functie kunnen gebruiken, maar ik krijg de goede volgorde of manier maar niet hoe ik dit tot werkelijkheid kan brengen! Want als ik de htmlspecailchars(); functie gebruik, doet de PHP Color Coding het niet meer, en andersom ook...

Dit is de code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
function kleur($code) {
ob_start();
$code = stripslashes($code);
highlight_string(wordwrap($code));
$code = ob_get_contents();
ob_end_clean();
return $code;
}

$bericht = preg_replace('_\\[php\](.*?)\\[/php\]_ise', "kleur(' \\1 ')", $bericht);
$bericht = htmlspecialchars($bericht);
$bericht = eregi_replace("http://[^[:space:]]+","<a href=\"\\0\" target=\"_blank\">\\0</a>",$bericht);
$bericht = eregi_replace("([a-zA-Z0-9_-]+)@([a-zA-Z0-9\._-]+)(\.[a-zA-Z]+)", "<a href=\"mailto:\\1@\\2\\3\">\\1@\\2\\3</a>", $bericht);
$bericht = str_replace("\n", "<br>", $bericht);
?>

Alvast bedankt!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

mijn volgorde:

htmlentities;
stripslashes volledige content;
code snippets filteren naar tempvar;
php highlighting;
ubb-like-shit (links, smileys);
code snippet terug plaatsen;
nl2br;

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
En hoe komt dat ongeveer tot uiting in de code? Ik snap ut ff niet helemaal (sorry).

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

nou ik ga het niet voor je maken ;)

met bovenstaande moet je er wel uitkomen (anders weet je nog niet wat er gebeurt)

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Ok, dan ga ik ff hier plaatsen wat ik ervan snap, en wat ik niet snap kun je hopelijk uitleggen?

htmlentities; = $bericht = htmlspecialchars($bericht);
stripslashes volledige content; = $bericht = stripslashes($bericht);
code snippets filteren naar tempvar; ??? WTF is dit?
php highlighting; = $bericht = preg_replace('_\\[php\](.*?)\\[/php\]_ise', "kleur(' \\1 ')", $bericht);
ubb-like-shit (links, smileys); = $bericht = eregi_replace("http://[^[:space:]]+","<a href=\"\\0\" target=\"_blank\">\\0</a>",$bericht);
$bericht = eregi_replace("([a-zA-Z0-9_-]+)@([a-zA-Z0-9\._-]+)(\.[a-zA-Z]+)", "<a href=\"mailto:\\1@\\2\\3\">\\1@\\2\\3</a>", $bericht);
code snippet terug plaatsen; ?? WTF is dit?
nl2br; $bericht = nl2br($bericht);

Dus komt er dit uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$bericht = htmlspecialchars($bericht);
$bericht = stripslashes($bericht);

function kleur($code) {
ob_start();
$code = stripslashes($code);
highlight_string(wordwrap($code));
$code = ob_get_contents();
ob_end_clean();
return $code;
}

$bericht = preg_replace('_\\[php\](.*?)\\[/php\]_ise', "kleur(' \\1 ')", $bericht);

$bericht = eregi_replace("http://[^[:space:]]+","<a href=\"\\0\" target=\"_blank\">\\0</a>",$bericht);
$bericht = eregi_replace("([a-zA-Z0-9_-]+)@([a-zA-Z0-9\._-]+)(\.[a-zA-Z]+)", "<a href=\"mailto:\\1@\\2\\3\">\\1@\\2\\3</a>", $bericht);

$bericht = str_replace("\n", "<br>", $bericht);
?>

AUB help me...

Verwijderd

Topicstarter
Kan niemand me ff helpen met deze volgorde? PLEASE

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 16 oktober 2001 11:11 schreef Mark-Z het volgende:
Kan niemand me ff helpen met deze volgorde? PLEASE
Op dinsdag 16 oktober 2001 10:20 schreef chem het volgende:
mijn volgorde:

htmlentities;
stripslashes volledige content;
code snippets filteren naar tempvar;
php highlighting;
ubb-like-shit (links, smileys);
code snippet terug plaatsen;
nl2br;
staat er toch al?
dus ga gewoon ff dit rustig bekijken en dan huilen imho

Doet iets met Cloud (MS/IBM)


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

code-snippets: als je het niet snapt dan heb je het niet nodig ;)

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Als ik dat toch niet begrijp...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 16 oktober 2001 11:24 schreef Mark-Z het volgende:
Kan iemand me niet gewoon helpen? Daar is dit Forum toch voor? En doe AUB niet zo vaag...
en zo je postcount opkrikken is ook niet de bedoeling
de bovenstaande 3 posts kunnen makkelijk in 1
er zit een edit knop op.....

Doet iets met Cloud (MS/IBM)


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

ik heb even wat posts van je verwijderd Mark-Z.

Ik zal zo ook ff de title aanpassen. Daarnaast is dit al vele malen behandeld [search=ubb php] en is een beetje denkwerk geen luxe, of wel?

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Arghh...

kom op man, deze code is toch heeeeeeeeel anders dan die andere shit...

ik heb het niet over UBB codes maar gewoon over deze code, IK VRAAG NETJES of je jouw antwoordt wil uitleggen, maar NEE HOOR, je doe ZO VAAG als een weet ik veel wat.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Ik wil je best helpen. Maar jij vraagt: wat is de juiste volgorde, die geef ik en je snapt het niet.

Ik wil best uitleg geven maar het schijnt dat mensen hier niet op het puntje van hun stoel zitten te wachten op jouw reply. Een beetje geduld betrachten en ondertussen zelf veel proberen levert je meer op.

Toch zal ik het even uitleggen.

ten eerste voeren we 'htmlentities' uit. Deze zet alle html-tags om.
Ik haal dan alle \ weg want die heb ik er in 1e instantie ingezet.
Vervolgens haal ik alles wat tussen 'code' tags eruit zodat je binnen code-blokken geen smileys krijgt.
Dan voer ik php-syntax-highlighting uit (waarbij de html-tags weer tijdelijk activeer omdat ze anders voor een 2e keer onschadelijk gemaakt worden wat tot rare resultaten leidt).
Daarna vervang ik alle smileys en ubb-tags
als laatste plaats ik de 'code' stukken terug
en last-but-not-least: nl2br().

Zo duidelijk?

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Kijk dat snap ik allemaal wel, zie ook mijn andere posts.

Ik snap niet hoe je die "code stukken" eruit haalt en er weer terug instopt? Wat bedoel je? Wat is het?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

zoals ik al zei: als die 'code' snippets je niks zeggen dan hoef je er niets mee te doen... het is ook vrij lastig om te maken.

Waar het op neer komt: alles wat tussen [ code ] en [/ code ] staat wordt (net zoals hier) niet van smileys, html etc. voorzien. Dit om te voorkomen dat er soms dingen abusievelijk worden omgezet.

Klaar voor een nieuwe uitdaging.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

voorbeeldje:

ik post dit:
code:
1
2
3
4
blablablablabla
[ code]
<?echo ":)"?>
[ /code]

Dan wil je dus niet dat de regel
code:
1
<?echo ":)"?>

een smiley gaat outputten, dus dat stuk tussen de code-tags (codesnippet dus) moet je er even tussenuit halen (en in een temporary var zetten),
dan alle styling, smilies etc. over de rest heen,
en dan de "code" weer terugzetten.
(en highlighten als je dat wilt)

's toch wel beetje logisch :)

edit: tempvar != tempfile |:(

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Ja, maar als ik dat dan in mijn code zo doe, krijg ik die code die ik al eerder heb geplaatst. En die werkt niet...

Dus?

Verwijderd

Topicstarter
Nee, dat is niet logisch, want daar had ik het helemaal niet over :-( en het werkt niet als ik die codesnipets weg laat...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 16 oktober 2001 11:55 schreef Mark-Z het volgende:
Dus?
moet je op zoek naar de search termen van chem

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
damned man, lees nu eens dit topic door en plaats daarna pas commentaar...

DUS LEES

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

mark-z: gebruik aub de 'edit' knop:
Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif om een bericht 'aan te vullen'

verder even zoeken en zien hoe andere mensen dit al opgelost hebben.

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
WILLEN JULLIE wel helpen? Anders ga ik het wel anders aanpakken, want als je niet wilt helpen houd het op hé....

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op dinsdag 16 oktober 2001 11:59 schreef Mark-Z het volgende:
damned man, lees nu eens dit topic door en plaats daarna pas commentaar...

DUS LEES
je bent van harte welkom hier, maar je hoeft niet meteen zo boos te worden!

Het is duidelijk dat je 'vast' zit maar GoT is een discussieplaats, geen helpdesk.

Klaar voor een nieuwe uitdaging.


  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 06:45

HenkS

Da_king alias HenkS

zet hier toch een slot op man, jesus wat een gezeik, bedoel die uitleg kan niet beter

offtopic:
oh ja chem, laatst had je een reactie gegeven op mijn topic hier, daar heb ik nog wat op gezegd, maar je zegt niks meer terug, zou ik nog wel fijn vinden (ik wilde het woord appricieren gebruiken) maar wel zo lullig als je het dan niet goed kan schrijven...

Verwijderd

|:(
Chem's right

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op dinsdag 16 oktober 2001 12:21 schreef HenkS het volgende:
offtopic:
oh ja chem, laatst had je een reactie gegeven op mijn topic hier, daar heb ik nog wat op gezegd, maar je zegt niks meer terug, zou ik nog wel fijn vinden (ik wilde het woord appricieren gebruiken) maar wel zo lullig als je het dan niet goed kan schrijven...
done :)

Klaar voor een nieuwe uitdaging.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mijn aanpak is veel makkelijker :)

Dump alles (wat dan ook, kwa tags) op de stack.
Loop die stack af en bepaal of de eventuele tussenliggende codes wel mogen worden uitgevoerd.

Theoretisch krijg je zo een boom van de code van je pagina (humm, idee... ;) )

Daarna kan je op de tussenliggende ubb/html code eventuele bewerkingen doen (highlighten, smilies, whatever).

Zonder al dat gedoe met regexps en functies allemaal tussenelkaar door te gebruiken.

Ik had overigens ooit es wat regexp code van tomato gezien (en begrepen :)) waarbij er geen echte losse code-snippets gebruikt werden.

Leuke van mijn systeem is, dat een tag als: [code highlight=java] of [code highlight=java font-size=1] allemaal kunnen werken :)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

PHP:
1
2
3
4
5
6
7
<?
$bericht = htmlspecialchars($bericht);
$bericht = preg_replace('_\\[php\](.*?)\\[/php\]_ise', "kleur(' \\1 ')", $bericht);
$bericht = eregi_replace("http://[^[:space:]]+","<a href=\"\\0\" target=\"_blank\">\\0</a>",$bericht);
$bericht = eregi_replace("([a-zA-Z0-9_-]+)@([a-zA-Z0-9\._-]+)(\.[a-zA-Z]+)", "<a href=\"mailto:\\1@\\2\\3\">\\1@\\2\\3</a>", $bericht);
$bericht = nl2br($bericht);
?>

dit zou moeten werken met de uitzondering dat je bij je ge-highlighte code met een < die > gaat worden..

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Die heb ik al eens uitgeprobeerd, and that will not work :-(

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

ACM:
Mijn aanpak is veel makkelijker :)

Dump alles (wat dan ook, kwa tags) op de stack.
Loop die stack af en bepaal of de eventuele tussenliggende codes wel mogen worden uitgevoerd.

Theoretisch krijg je zo een boom van de code van je pagina (humm, idee... ;) )

Daarna kan je op de tussenliggende ubb/html code eventuele bewerkingen doen (highlighten, smilies, whatever).

Zonder al dat gedoe met regexps en functies allemaal tussenelkaar door te gebruiken.

Ik had overigens ooit es wat regexp code van tomato gezien (en begrepen :)) waarbij er geen echte losse code-snippets gebruikt werden.

Leuke van mijn systeem is, dat een tag als: [code highlight=java] of [code highlight=java font-size=1] allemaal kunnen werken :)
Dan zal je toch zeker ook regexen gebruiken :?
Wel een stoere manier trouwens. Ga ik ook een keer uitwerken.
Nog een voordeel is dat je dan ook nesting errors e.d. aan kan wijzen. Cool *D

[afdwaal mode]
Als je eenmaal zover bent, kun je zelfs binnen no-time een html-checker schrijven. En die dan in je Apache config hangen, die dan weer error genereert als je foute html naar de gebruiker stuurt. 500 Internal Server Error: HTML not correct. :D hahaha!
[/afdwaal mode]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1