Ophion Geplaatst: 24 maart 2010 Rapport Geplaatst: 24 maart 2010 (bewerkt) Hallo! Ik ben momenteel bezig met het maken van een Flash (AS3) Chat systeem. Ik ben aardig op weg, alleen ben nu vastgelopen met de online gebruikers lijst. Ik stuur nu een string naar PHP sturen en PHP zet dit in een textbestand zet. Zo krijg ik het nu in het tekstbestand te zien: Jeroen&Ophion&GtaForum . Daarnaast zou ik graag willen dat ik een naam kan verwijderen. Dat ik bijvoorbeeld in PHP een functie aanroep met een lokale variabele (bijvoorbeeld Jeroen) en dat Jeroen dan verwijdert wordt uit het tekst bestand, met als resultaat Ophion&GtaForum . Hier blijf ik vastlopen, omdat het mij niet lukt een substring uit een string te verwijderen. Ik krijg dan óf geen resultaat, óf de & zit er of te veel of te weinig in. Dit is mijn script nu: <?PHP class chat { function getText () { $fp = fopen("chatText.txt", "r"); $contents = fread($fp, filesize("chatText.txt")); fclose($fp); return $contents; } function addText ($text) { $contents = "$text"; $fp = fopen("chatText.txt", "w"); if(fwrite($fp, $contents)){ fclose($fp); return "Data saved"; }; } function getUsers () { $fp = fopen("chatUsers.txt", "r"); $contents = fread($fp, filesize("chatUsers.txt")); fclose($fp); //$data = explode("|", $contents); return $contents; } function addUser ($name) { $fp = fopen("chatUsers.txt", "r"); $contents1 = fread($fp, filesize("chatUsers.txt")); fclose($fp); $contents = "$contents1|$name"; $fp = fopen("chatUsers.txt", "w"); if(fwrite($fp, $contents)){ fclose($fp); return "Data saved"; }; } function clearUsers () { $fp = fopen("chatUsers.txt", "w"); if(fwrite($fp, "")) { fclose($fp); return "Users cleared"; }; } function removeUser ($naam) { // Wat zou hier dan moeten? } } ?> Wie zou mij kunnen helpen met dit probleem? Alvast super bedankt! Groetjes, Jeroen! Bewerkt: 24 maart 2010 door Ophion Reageren
marcootje Geplaatst: 24 maart 2010 Rapport Geplaatst: 24 maart 2010 Je kan dit op twee manieren aanpakken: - een array maken en het gewenste element verwijderen - een reguliere expressie die de naam verwijdert Beide opties zijn goed te doen. Een beetje snel in elkaar gezet zal dit zoiets worden: // $data komt uit het bestand // $naam is de naam $users = explode("&", $data); $key = array_search($naam, $users); if(!$key) { return; } unset($users[$key]); $data = implode("&", $users); // $data wegschrijven in het bestand // $data komt uit het bestand // $naam is de naam $data = preg_replace('/'.preg_quote($naam, '/').'(@|)/', '', $data); // OF: $data = preg_replace('/'.preg_quote($naam, '/').'(@)?/', '', $data); // $data wegschrijven in het bestand Ik heb het niet getest, maar dit moet aardig werken denk ik. Reageren
Ophion Geplaatst: 24 maart 2010 Auteur Rapport Geplaatst: 24 maart 2010 Super! Ik ga er mee aan de slag! Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.