Hvor mange?

Tags:    php

Jeg sidder og er ved at programmere et brugersystem med forum osv. til en hjemmeside. Så er jeg ved at lave en citat funktion, hvor der bliver lavet en ny tabel med funktionen [citat] og så bliver det stoppet igen med [/citat], men mit problem ligger i at hele sitet bliver ødelagt af, hvis man har lavet en tastefejl, hvor der bliver startet en tabel, eller sluttet en tabel og så bliver hele opsætningen af hjemmesiden ødelagt af :( ..

1. Hvordan kan man finde ud af hvor mange gange [citat] er skrevet og [/citat] er skrevet, for så kan man nemlig lade vær med at køre replace funktionen, hvis de begge ikke står lige mange gange med en almindelig if($citatstart == $citatslut) { kør replace }, håber i forstå mig :)



Indlæg senest redigeret d. 05.04.2008 19:53 af Bruger #10622
3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Funktionen preg_match_all() er nok hvad du leder efter - http://dk2.php.net/manual/da/function.preg-match-all.php
:)



$start=substr_count( $besked, '[citat]');
$slut=substr_count( $besked, '[/citat]');

for at gøre det du siger skal du bare
if($start==$slut){
kør replace
}

eller du kan replace uanset hvad og så bare indsætte det manglende kode.
kan gøre med
$start=substr_count( $besked, '[citat]');
$slut=substr_count( $besked, '[/citat]');
kør replace
if($start<$slut){
$besked.=str_repeat("SLUT CITAT", $slut-$start);
}elseif($start>$slut){
$besked=str_repeat("START CITAT", $start-$slut).$besked;
}


det er måske ikke så godt eller hurtigt som regexp, men væsentligt lettere at forstå og lave.




Indlæg senest redigeret d. 05.04.2008 22:49 af Bruger #5620
har du et link til din side, og du kan højre klikke på din side og på den måde se det.



t