emailadresse auseinandernehmen (explode) ?

Stephan Liebig

Erfahrenes Mitglied
Hallo,

ich möchte eine Emailadresse auseinander nehmen.

Zum Beispiel: irgend@eine.de

Dann soll das so aufgeteilt werden:

mailnam: irgend
mailsvr: eine
maildom: de

Das wollte ich mit folgender Funktion machen, leider erhalet ich aber keine Rückgabewerte.

PHP:
function  mail_convert($email) {
			$temp = explode("@",$email);
			$mailnam = $temp[0];
			$mailsvrdom = $temp[1];
			$temp2 = explode(".",$mailsvrdom);
			$maildom = $temp2[0];
			$mailsvr = $temp2[1];
		
			return $mailnam;
			return $maildom;
			return $mailsvr;
		}
 
Also ersteinmal vermute ich, dass du, wie bei anderen Programmiersprachen, immer nur einen Rückggabewert (return) angeben darfst.

Probier mal mittels "echo" bzw. "print_r($var)" die einzelnen Variablen zu prüfen, ob sie denn belegt sind. Print_r bei Arrays, echo bei einfachen Variablen. Prüfe auch die Variable $email zu beginn, damit du weißt, ob wirklich Inhalt gegeben ist.
 
Jepp. Imho können Funktionen nur 1 Wert zurückgeben. Entweder Du printest es oder speicherst es in Variablen (z.B. Sessionvariablen) zwischen und fragst diese dann ab. Oder noch einfacher...Du gibst dem return einfach ein Array.
 
PHP:
function splitMail($mail) {
	
	list($adr['name'], $adr['domain'], $adr['domaintag']) = split('[/@.]', $mail);
	
	return $adr;
}

print_r(tokMail("test@hans.com"));

Ich finde diese Version ganz angenehm.
Allerdings sollte vorher geprüft werden (oder in diese Funktion miteingebaut werden) ob die Mail valide ist.
 
Irgendwie blick ich das gerade nicht.

Ich will eigentlich nur Kontaktdaten auflisten.
Und da will ich einen Schutz vor diesen SpamBots einbauen.


PHP:
<?php
	
	echo '<SCRIPT language="JavaScript" src="./tools/mailprotect.js"></SCRIPT>';
	
	#mailconvert
	function splitMail($mail) {
        list($adr['name'], $adr['domain'], $adr['domaintag']) = split('[/@.]', $mail);
    
    	return $adr;
	}

		
	#db settings
	include('config.inc.php');
	
	#connect to database
	$conn = @ mysql_connect("$host","$user","$pass"); 
	if (!$conn) { 
			die ("Der Verbindungsversuch zur Datenbank ist leider fehlgeschlagen !"); 
	}
	
	#select database sv-airlenbach
	mysql_select_db($userdatabase,$conn);
	
	
	$result = mysql_query("SELECT * FROM vorstand ORDER BY task_id ASC", $conn) or die(mysql_error()); 
	$num_vor = mysql_num_rows($result);
	
	for($i=0;$i<$num_vor;$i++) {
		$data = mysql_fetch_array($result);
		$email = $data[email];
		
		splitMail($email);
			
			#check if picture is available
			if($data[picture] == NULL)
			{
			$picture = 'nopic.jpg';
			}
			else
			{
			$filename = './images/vorstand/'.$data[picture];
			}
			if (file_exists($filename)) 
			{
   				$picture = $data[picture];
			} 
			else 
			{
   				$picture = 'nopic.jpg';
			}
			
			#Ausgabe des Vorstandes
			echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
  				echo '<tr>';
    				echo '<td width="85"><img src="./images/vorstand/'.$picture.'"></td>';
    				echo '<td valign="top" class="mainarea">
							<font size="+1">'.$data[nachname].', '.$data[vorname].'</font><hr>
							'.$data[posten].'<br>Tel.: '.$data[telefon].'<br>';
							?>
							
							Email: <script language="javascript">InsertMail('<?php echo $adr[name]; ?>','<?php echo $adr[domain]; ?>','<?php echo $adr[domaintag]; ?>','');</script>
							<?php
							echo '</td>';
							
							
  				echo '</tr>';
			echo '</table>';
			echo '<br><br>';
	}
	
	#close db-connection
	mysql_close($conn);

?>
 
Zurück