Jump to content

Flash Chat met PHP


Ophion

Recommended Posts

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: door Ophion
Link to comment
Delen op andere websites

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.

Link to comment
Delen op andere websites

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.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...