Weer zo'n replace fout
Hoe krijg ik het onderstaande script werkend? Ik denk dat jullie wel weten wat er moet gebeuren. De functie werkt wel goed. Maar hoe zorg ik ervoor dat de code tusen [ c ode] en [ / code] wel werkt?
Hij geeft nu de volgende fout:
Hij geeft nu de volgende fout:
Code (php)
1
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in G:\UsbWebserver2\Root\PHP\UBB\replace.php on line 81
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Highlightfunctie
function customHighlight($code){
$code = highlight_string($code, true);
$aLines = explode("<br />", $code);
$iLines = count($aLines);
$output = "<table><tr><td class=num>\n";
for($i=1;$i<=$iLines;$i++){
$output .= $i ."<br />";
}
$output .= "\n</td><td>\n$code\n</td></tr></table>";
return $output;
}
$string = preg_replace("_\(.*)\[/code\]_si", customHighlight($1), $string);
?>
// Highlightfunctie
function customHighlight($code){
$code = highlight_string($code, true);
$aLines = explode("<br />", $code);
$iLines = count($aLines);
$output = "<table><tr><td class=num>\n";
for($i=1;$i<=$iLines;$i++){
$output .= $i ."<br />";
}
$output .= "\n</td><td>\n$code\n</td></tr></table>";
return $output;
}
$string = preg_replace("_\(.*)\[/code\]_si", customHighlight($1), $string);
?>
Gewijzigd op 01/01/1970 01:00:00 door Henk en Annie
Gesponsorde koppelingen:
Line 81?
@Yearupie,
Ja dat wist ik, maar aangezien (.*) wordt toegewezen aan $1 dacht ik dat ik die moest gebruiken, maar niet dus. Hoe kan ik anders de tekst tussen de code-tags highlighten met die functie?
@SanThe,
Ja, tis een deel uit een functielijst van mij.
Ja dat wist ik, maar aangezien (.*) wordt toegewezen aan $1 dacht ik dat ik die moest gebruiken, maar niet dus. Hoe kan ik anders de tekst tussen de code-tags highlighten met die functie?
@SanThe,
Ja, tis een deel uit een functielijst van mij.
$1 moet tussen aanhalingstekens. Alleen weet ik niet zeker of hij dan de functie goed uitvoert.
Hier zie je hoe je het zou kunnen doen, het is wat veel, maar zelf weet ik geen betere manier om er voor te zorgen dat:
1). een code-tag NIET verandert word als deze in een andere code-tag staat
2). een functie uitvoeren om te highlighten (of wat je dan wilt)
http://www.phphulp.nl/forum/showtopic.php?id=66913&cat=1
Hier zie je hoe je het zou kunnen doen, het is wat veel, maar zelf weet ik geen betere manier om er voor te zorgen dat:
1). een code-tag NIET verandert word als deze in een andere code-tag staat
2). een functie uitvoeren om te highlighten (of wat je dan wilt)
http://www.phphulp.nl/forum/showtopic.php?id=66913&cat=1
Tussen aanhalingstekens werkt niet.
Van die tweede snap ik niks, maar ik zal het even grondig doornemen.
BTW weet niemand anders het? :P
De tweede klopt geen zak van. Geeft allemaal fouten.
Van die tweede snap ik niks, maar ik zal het even grondig doornemen.
BTW weet niemand anders het? :P
De tweede klopt geen zak van. Geeft allemaal fouten.
Gewijzigd op 01/01/1970 01:00:00 door Henk en Annie
Wat voor fouten? Ik doelde trouwens op mijn één-na-laatste post in dat topic (en dan het onderste stukje code).
Ik had 't nog getest, wat voor fouten?
Ik had 't nog getest, wat voor fouten?
Je moet ook niet preg_replace maar preg_callback preg_replace_callback gebruiken hiervoor :)
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
Owkee :)
Let's have a look
Let's have a look
Ehm kan je en voorbeeldje geven hoe ik dat meot toepassen in het script?
Ik heb iets anders geprobeerd, namelijk het volgende:
Hij geeft regelnummers wel aan, maar dan staat de code
niet weer. Als ik dan in de broncode kijk staat als commentaar...
Ik heb iets anders geprobeerd, namelijk het volgende:
Hij geeft regelnummers wel aan, maar dan staat de code
niet weer. Als ik dan in de broncode kijk staat als commentaar...
De oplossing is gevonden!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
// Highlightfunctie
function customHighlight($code){
$code = highlight_string($code[1], true);
$aLines = explode("<br />", $code);
$iLines = count($aLines);
$output = "<table><tr><td class=num>\n";
for($i=1;$i<=$iLines;$i++){
$output .= $i ."<br />";
}
$output .= "\n</td><td>\n$code\n</td></tr></table>";
return $output;
}
$string = "[ code]<?php\necho 'test';\necho 'aap';\n?>[ /code]";
$string= preg_replace_callback("#\[code\](.*?)\[/code\]#s", "customHighlight", $string);
echo $string;
?>
// Highlightfunctie
function customHighlight($code){
$code = highlight_string($code[1], true);
$aLines = explode("<br />", $code);
$iLines = count($aLines);
$output = "<table><tr><td class=num>\n";
for($i=1;$i<=$iLines;$i++){
$output .= $i ."<br />";
}
$output .= "\n</td><td>\n$code\n</td></tr></table>";
return $output;
}
$string = "[ code]<?php\necho 'test';\necho 'aap';\n?>[ /code]";
$string= preg_replace_callback("#\[code\](.*?)\[/code\]#s", "customHighlight", $string);
echo $string;
?>
Maar dan iets wat nog kutter is
Waarom wordt "
Waarom wordt "
Vietnam schreef op 23.09.2009 12:26:
Maar dan iets wat nog kutter is
Waarom wordt "
Waarom wordt "
Code (php)
1
2
3
4
2
3
4
<?php" weggelaten in het highlighten?
Als ik dan in de broncode kijk staat <?php als commentaar..[/quote]
htmlentities eroverheen...
Als ik dan in de broncode kijk staat <?php als commentaar..[/quote]
htmlentities eroverheen...
Quote:
Nee, daar zit ie op te wachten denk ik... Volledige HTML in de browserview door htmlentities... Zat eigenlijk wat meer aan str_replace, strtr te denken...htmlentities eroverheen...
Jan Willem van der Veer schreef op 23.09.2009 13:00:
Quote:
Nee, daar zit ie op te wachten denk ik... Volledige HTML in de browserview door htmlentities... Zat eigenlijk wat meer aan str_replace, strtr te denken...htmlentities eroverheen...
.........



