[php] php highlight ubb parser lukt niet

Pagina: 1
Acties:

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Dit heb ik er dus na 3 uur van gebakken, maar 't wil niet werken. :(
PHP:
1
2
3
4
<?
$text = preg_replace ("/\\[php\]((.|\n)*?)\\[\/php\]/i", "<ul><font size=1>php:</font><hr width=500 align=left><nobr>[php1]\\1[/php1]</nobr><hr width=500 align=left></ul>",$text);
$text = preg_replace ("/\\[php1\]((.|\n)*?)\\[\/php1\]/e", "highlight_string('\\1')", $text);
?>

Er mogen geen enters in de output zitten .. wie kan me een tip geven? :)

hier kun je in de source kijken wat er mis gaat, * Engineer snapt er geen hol meer van.

  • tomato
  • Registratie: November 1999
  • Niet online
Ten eerste, wat gaat er fout?
Ten tweede, waarom doe je dit in twee keer :?
Ten tweede, kijk eens naar highlight_string()

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
volgens mij is het "highlight_string(\\1)", dus zonder de aanhalingstekens om \\1 (maar misschien ook niet ;))

verder zul je bij highlight_string output control moeten gebruiken omdat ie het direct echo'd ipv in een string returnt

en je kunt beter een functie maken die de zooi om de gehighlighte code zet, en die gebruiken bij preg_replace.

vb:
code:
1
2
3
4
5
6
7
8
9
10
function php_highlight($input)
{
    $output = "<ul><font size=1>php:</font>enz"
    ob_start();
    highlight_string($innertext);
    $output .= ob_get_contents();
    ob_end_clean();
    $output .= "...</ul>";
    return $output;
}

Verwijderd

Op dinsdag 13 november 2001 23:49 schreef tomato het volgende:
Ten eerste, wat gaat er fout?
Ten tweede, waarom doe je dit in twee keer :?
Ten tweede, kijk eens naar highlight_string()
:D

Verder moet je bij preg_replace gebruik maken van /e :)

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op woensdag 14 november 2001 09:51 schreef Zef het volgende:
:D

Verder moet je bij preg_replace gebruik maken van /e :)
Doet ie ook, beter kijken :)

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
prbeer i.p.v.
PHP:
1
2
3
<?
$text = preg_replace ("/\\[php1\]((.|\n)*?)\\[\/php1\]/e", "highlight_string('\\1')", $text);
?>

eens
PHP:
1
2
3
<?
$text = preg_replace ("/\\[php1\]((.|\n)*?)\\[\/php1\]/e", 'highlight_string("\\1")', $text);
?>

Dus gewoon de single en dubble quote omdraaien. Dat is nl. mijn standaard manier van met strings werken en mijn parser werkte altijd wel ok.

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

chem

Reist de wereld rond

deze gebruik ik icm classes:
PHP:
1
2
3
4
5
<?
$string = preg_replace(    "/\\[PHP\](.*?)\\[\/PHP\]/ise", 
                            '"[QUOTE]".$this->highlightcode("\\1")."[/QUOTE]"', 
                            $string);
?>

Klaar voor een nieuwe uitdaging.


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Ik denk dat het probleem ligt bij het feit dat er enters uit highlight_string() komen .. is daar een functie voor om die eruit te halen? :)

edit: Hij haalt ook nog eens alle text om de php tags heen weg .. zit dus nog een fout in die preg_replace..

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
* Engineer moet een ubb parser hebben voor php..

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op woensdag 14 november 2001 14:48 schreef hdd het volgende:
Ik denk dat het probleem ligt bij het feit dat er enters uit highlight_string() komen .. is daar een functie voor om die eruit te halen? :)

edit: Hij haalt ook nog eens alle text om de php tags heen weg .. zit dus nog een fout in die preg_replace..
wat zouden die enters uit maken dan? :?

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Op woensdag 14 november 2001 19:03 schreef marcusk het volgende:

[..]

wat zouden die enters uit maken dan? :?
De output komt terecht in een javascript .. daar mogen dus geen enters in zitten.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op woensdag 14 november 2001 14:48 schreef hdd het volgende:
Ik denk dat het probleem ligt bij het feit dat er enters uit highlight_string() komen .. is daar een functie voor om die eruit te halen? :)

[..]
nl2br ??

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Op woensdag 14 november 2001 19:59 schreef SWINX het volgende:

[..]

nl2br ??
Die maakt van een enter een enter+<br> ;)

Verwijderd

Op woensdag 14 november 2001 11:21 schreef freak007 het volgende:

[..]

Doet ie ook, beter kijken :)
Mein voudt ;)

Verwijderd

Op woensdag 14 november 2001 20:09 schreef hdd het volgende:

[..]

Die maakt van een enter een enter+<br> ;)
Ik zal je probleem wel niet snappen maar:
PHP:
1
2
3
<?
$string = str_replace("\n", "", $string);
?>
Pagina: 1