[php] bbcode probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een probleem met me bbcode script. Data staat in de database met addslashes, maar zonder htmlspecialcharts. Nu heb ik een functie gemaakt om PHP colorcoding te krijgen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
function showsource($code) {

// php mooi weergeven
ob_start();

highlight_string($code);
$colorsource    = ob_get_contents();
ob_end_clean();
$colorsource    = str_replace (" ", " ",$colorsource);
$colorsource    = str_replace("<?", "<code><?", $colorsource);
$colorsource    = str_replace("?>", "?></code>", $colorsource);

// uitpoepen output van phpcode       
return $colorsource;
}
?>


Dit wordt later zo geecho't.

PHP:
1
2
3
<?
$body = showsource(stripslashes($row['body']));
?>


Opzich werkt het prima tot je slashes gaat gebruiken, dan komen de errors om de hoek.

code:
1
2
echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes


Dat werk perfect, maar zodra je dit als code neerzet:

code:
1
2
echo\"test\"; // dubble quote, 1 slashes
echo\'test\'; // enkele quote, 1 slashes


Hoe is dit op te lossen, ik ben radeloos :/

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Wat is het probleem? Die foutmelding van php dat je te highlighten code niet goed is? :)

De enige oplossing daarvoor die ik gezien heb is een @ voor de showsource zetten (een van de weinige keren dat het een nuttige toepassing is ervan ;) )

[ Voor 4% gewijzigd door ACM op 07-06-2003 23:41 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De foutmelding is: Warning: Unexpected character in input: '\' (ASCII=92) state=1

Werk liever niet met @'jes :) maar als het moet dan moet het.

Als ik er een @ voor zet is de foutmelding weg, maar de output is dan bij echo\"test\"; niet goed.

echo\"test\"; geeft dan als output : echo"test\";

Er is dan dus 1 slash weg, waardoor de kleuren niet meer kloppen bij de rest van de code.

Edit:

Ik zie net dat het niet alleen bij echo\"test\"; fout gaat maar ook bij echo\'test\';

code:
1
2
3
4
5
6
7
8
9
10
11
<?
// leuk

echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

echo\'test\'; // enkele quote, 1 slashes
echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

?>


dit bovenstaande geeft als output het volgende:

code:
1
2
3
4
5
6
7
8
9
10
11
<? 
// leuk 

echo"test"; // dubble quote, geen slashes 
echo'test'; // enkele quote, geen slashes 

echo'test\'; // enkele quote, 1 slashes 
echo"test"; // dubble quote, geen slashes 
echo'test'; // enkele quote, geen slashes 

?>

[ Voor 49% gewijzigd door Verwijderd op 07-06-2003 23:48 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
// leuk

echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

echo\'test\'; // enkele quote, 1 slashes
echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

?>

Volgens mij is php's source-highlighter niet zo goed hoor, 't gaat ook bij ons fout.

Maar waar is die stripslashes in je code voor?

[ Voor 4% gewijzigd door ACM op 08-06-2003 00:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Die stripslashes zijn er voor om de slashes weg te halen die extra worden toe gevoegd. Alle data die de DB in gaat krijg addslashes.

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
// leuk

echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

echo\'test\'; // enkele quote, 1 slashes
echo"test"; // dubble quote, geen slashes
echo'test'; // enkele quote, geen slashes

?>


Bij jullie gaat het idd ook niet goed, jeetje zeg, PHP best brak taaltje dan :? is er niets aan te doen :X

[ Voor 8% gewijzigd door Verwijderd op 08-06-2003 08:47 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Jahoor, het is open source, dus je kan de highlighting code zo aanpassen als je wil :+

En dat er een _iets_ fout gaat maakt de hele taal niet ineens brak hoor :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, maar mijn kennis is daar lang niet groot genoeg voor. Ik weet dan de bbparser van GoT extreem goed is, en als jullie het hier niet eens goed krijgen, dan zal het mij nooit lukken :D
Pagina: 1