ubb-list code wilt niet werken
Het zit zo dat ik geen output krijg maar dus wel een verwacht
hier is het script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
function lijst($wat, $tekst){
$deel = explode("[*]", $tekst);
$aantal = count($deel) - 1;
if ($aantal == 0){
$error= 1;
} elseif($aantal == 1){
$nieuwetekst = $deel[1];
} else {
$nieuwetekst = "";
for($i=1;$i<=$aantal;$i++){
$nieuwetekst .= "</ul><ul>".$deel[$i];
}
}
if ($error != 1){
if($wat == "bol"){
$tekst = "<ul><li>".$nieuwetekst."</li></ul>";
} elseif($wat == "num"){
$tekst = '<ol type="1"><li>'.$nieuwetekst."</li></ol>";
} else{
$tekst = '<ol type="a"><li>'.$nieuwetekst."</li></ol>";
}
}
return $tekst;
}
#####dat was de code nu een voorbeeld; oke dit forum zet dit presies om :s dan maar met een spatie ertussen
$Bericht = "
[list][*]testje[*]of tweee[/list]\n
[list=1][*]testje[/list]\n
[list=a]niets[/list]\n
";
#### en dan hier de regex om de code om te zetten
// lists:
//gewone
$Bericht = preg_replace ( "#[LIST](.*?)[/LIST]", 'lijst("bol", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list](.*?)[/list]", 'lijst("bol", "\\1")', $Bericht);
//numerieke
$Bericht = preg_replace ( "#[LIST[:=]1](.*?)[/LIST]", 'lijst("num", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]1](.*?)[/list]", 'lijst("num", "\\1")', $Bericht);
//alfabetische
$Bericht = preg_replace ( "#[LIST[:=]a](.*?)[/LIST]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]a](.*?)[/list]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = str_replace ("\n", "<br />", $Bericht);
##### en echo en
echo ($Bericht);
?>
function lijst($wat, $tekst){
$deel = explode("[*]", $tekst);
$aantal = count($deel) - 1;
if ($aantal == 0){
$error= 1;
} elseif($aantal == 1){
$nieuwetekst = $deel[1];
} else {
$nieuwetekst = "";
for($i=1;$i<=$aantal;$i++){
$nieuwetekst .= "</ul><ul>".$deel[$i];
}
}
if ($error != 1){
if($wat == "bol"){
$tekst = "<ul><li>".$nieuwetekst."</li></ul>";
} elseif($wat == "num"){
$tekst = '<ol type="1"><li>'.$nieuwetekst."</li></ol>";
} else{
$tekst = '<ol type="a"><li>'.$nieuwetekst."</li></ol>";
}
}
return $tekst;
}
#####dat was de code nu een voorbeeld; oke dit forum zet dit presies om :s dan maar met een spatie ertussen
$Bericht = "
[list][*]testje[*]of tweee[/list]\n
[list=1][*]testje[/list]\n
[list=a]niets[/list]\n
";
#### en dan hier de regex om de code om te zetten
// lists:
//gewone
$Bericht = preg_replace ( "#[LIST](.*?)[/LIST]", 'lijst("bol", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list](.*?)[/list]", 'lijst("bol", "\\1")', $Bericht);
//numerieke
$Bericht = preg_replace ( "#[LIST[:=]1](.*?)[/LIST]", 'lijst("num", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]1](.*?)[/list]", 'lijst("num", "\\1")', $Bericht);
//alfabetische
$Bericht = preg_replace ( "#[LIST[:=]a](.*?)[/LIST]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = preg_replace ( "#[list[:=]a](.*?)[/list]", 'lijst("alf", "\\1")', $Bericht);
$Bericht = str_replace ("\n", "<br />", $Bericht);
##### en echo en
echo ($Bericht);
?>
veel dank!
moet dat niet zijn:
Code (php)
1
2
3
2
3
<?
$Bericht = preg_replace("/\[list=(.+?)](.+?)\[\/list\]/is", 'lijst($1, $2)', $Bericht);
?>
$Bericht = preg_replace("/\[list=(.+?)](.+?)\[\/list\]/is", 'lijst($1, $2)', $Bericht);
?>
??
+ ik denk eerder dat er iets mis is met de functie want ik heb al mijn regex ongeveer zo gemaakt en die werken wel...
Gewijzigd op 24/08/2004 22:15:00 door de VeeWee
echo $error . "<P>";
echo $nieuwetekst . "<P>";
oké ik denk dat ik het weet!; de functie word gewoon verkeerd aangeroepen dus de regex zijn verkeerd.
nu heb ik dit geprobeerd:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$Bericht = preg_replace ( "#\[LIST\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 47";
}
$Bericht = preg_replace ( "#\[list\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 51";
}
//numerieke
$Bericht = preg_replace ( "#\[LIST[:=]1\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 56";
}
$Bericht = preg_replace ( "#\[list[:=]1\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 60";
}
//alfabetische
$Bericht = preg_replace ( "#\[LIST[:=]a\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 65";
}
$Bericht = preg_replace ( "#\[list[:=]a\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 69";
}
?>
$Bericht = preg_replace ( "#\[LIST\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 47";
}
$Bericht = preg_replace ( "#\[list\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 51";
}
//numerieke
$Bericht = preg_replace ( "#\[LIST[:=]1\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 56";
}
$Bericht = preg_replace ( "#\[list[:=]1\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 60";
}
//alfabetische
$Bericht = preg_replace ( "#\[LIST[:=]a\](.*?)\[/LIST\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 65";
}
$Bericht = preg_replace ( "#\[list[:=]a\](.*?)\[/list\]", "\\1", $Bericht);
if (empty($Bericht)){
echo "error line 69";
}
?>
en ik krijg alle errors maar ik begrijp het niet want voor mij zien die regex er goed uit :s
maar nu nog een bijkomende fout:
ik kom dit uit als output:
lijst("bol", testjeof tweee)maar normaal zou die lijst(blabla) een functie moeten uitvoeren die het omzet naar een echte list...
weet iemand hoe het komt dat hij dit niet doet
opl:
_\[list[:=]a\](.*?)\[/list\]_ise