Toon posts:

[PHP] String verwijderen tussen bepaalde waarden.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik kom er niet meer uit. Ik ben bezig met een quote systeem voor dutchgeforce.nl het werk allemaal goed. Maar nu wil ik wanneer iemand een reactie quote waar al in geuote is die quote dus verwijderen. Anders ziet het er zo lullig uit.

Ik heb er volgende al gevonden, maar nu zit ik met spaties en enters (\n).

Ik moet dus zoiets hebben als.

-> Quote reactie -> lees de reactie -> vindt je <quote> -> activeer: lees verder tot </quote> -> verwijder de string die gevonden.

Ik kan verder niets vinden over of hier een functie voor bestaat. En ik heb tot nu toe nog niet kunnen bedenken wat dit probleem zou kunnen verhelpen.

Die heb ik tot nu toe:
PHP:
1
<?function delquote($data='') {if(empty($data) {return $data;}$lines = split("\n,$data);while(list($key,$line) = each($lines) {$line = eregi_replace("(<quote>[^)r</quote>]+)"verwijderd",$data);$newtext .= $line . "\n";}return $newtext;}$reactieomtequoten = delquote($result[comment]);?>

Dit stukje script heb ik ergens anders vandaan ik weet dus ook niet exact wat er allemaal gebeurt. Zoals die "[^)\r"

Dit werkt dus goed tot er een spatie is of een enter. Weet iemand hoe dit op te lossen is.

Zou fijn zijn als er binnen 3 kwartier een reactie zou komen, ik zit nu op school en over 3 kwartier kan ik morgen pas weer kijken of iemand gereageerd heeft ;(

Thx

  • spine
  • Registratie: Juni 2001
  • Niet online

spine

VISHUDDHI

PHP:
1
<?function delquote( $data='' ) {        if( !$data )            return $data;                $data = preg_replace("!\\[quote\](.*)\\[/quote\]!Uis", "verwijderd",$data);            return $data;    }        $reactieomtequoten = delquote( $result["comment"] );?>

zoiets

[BSDFreaks.nl] [www.Dark-Future.org] [Alizarin.nl]


Verwijderd

code:
1
$line = preg_replace('/<quote>(.+?)<\/quote>/is', 'verwijderd', $line);

Is denk ik wat je wilt. Ik gebruik perl regular expressions:
<quote> betekent: zoek naar de tekst '<quote>'
(.+?) betekent: Dan komt er een zo kort mogelijke lap tekst (. is elke teken + is meerdere daarvan en ? zo min mogelijk)
<\/quote> betekent: dan moet er '</quote>' komen te staan (/ moet je escapen is een een meta character in perl regexes).

En dat geheel vervang ik door niks = verwijderen.

/is slaat op caseinsensitive matchen waar \n ook onder . valt.

Verwijderd

Topicstarter
Op dinsdag 12 maart 2002 09:37 schreef sPiNe het volgende:
PHP:
1
<?function delquote( $data='' ) {        if( !$data )            return $data;                $line = preg_replace("!\\[quote\](.*)\\[/quote\]!Uis", "verwijderd",$data);            return $newtext;    }        $reactieomtequoten = delquote( $result["comment"] );?>

zoiets
Ik ga het nu proberen, ik zit nu op school met me latop naast de internet pc's dus ik meot het ff overtypen :P

  • spine
  • Registratie: Juni 2001
  • Niet online

spine

VISHUDDHI

Op dinsdag 12 maart 2002 09:38 schreef Mannekino het volgende:

[..]

Ik ga het nu proberen, ik zit nu op school met me latop naast de internet pc's dus ik meot het ff overtypen :P
ik hebbum net geedit...

[BSDFreaks.nl] [www.Dark-Future.org] [Alizarin.nl]


Verwijderd

Topicstarter
Damn wat een toffe bende hier!! :P

Ze werken allebij alleen die tweede ietsje beter denk ik.

Als ik mijn hele content systeem af heb, news posting reageren downloads enz enz. Paas ik het allemaal terug aan de 'community'

Verwijderd

Topicstarter
Nog ff een kort vraagje, met E_ALL aan op me laptoppie krijg ik vaal nog meldeing van ongedefinieerde variablen, daar wil ik ook wat aan doen, meot ik dan alleen die isset functie gebruiken?

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

zoiets..
PHP:
1
<?if (!isset($var)) {$var = "";}?>

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."

Pagina: 1