Text auslesen, verarbeiten mit trim() und explode()

icefire

Erfahrenes Mitglied
Hallo!
Ich habe 2 kleine Probleme bei der Weiterverarbeitung bzw der Ausgabe auf die entsprechende Seite.

Zum einen möchte ich die unnötigen Leerzeichen bzw. Leerzeilen entfernen, zum anderen möchte ich mit Hilfe von exlode() noch die Daten aufteilen und dadurch andere Informationen zuteilen.


mapcycle.txt
de_dust
cs_italy
usw.




PHP:
/* Mapcycle */
$file = "mapcycle.txt";

if (file_exists($file)){

print'	<table bgcolor="#858585" cellpadding="2" cellspacing="2" align="center">';

$datei = fopen($file,"r");
$zeile = true;
    
while ($zeile) {
$zeile = fgets($datei, 100);

$trimfile = " \t\n".$zeile." \t\n";
$images = trim($trimfile);

$de = explode("de_",$zeile);
$cs = explode("cs_",$zeile);
if($de['de_'] == 'de_'){$gameplay='Entschärfen';}elseif($cs['cs_'] == 'cs_'){$gameplay='Retten';}
    
print'	<tr style="background-color:'.$color.'">
		<td align="left" style="height: 60px; width: 80px;"><img src="'.$imagepath.$images.'.gif" height="56px" width="80px" alt="'.$zeile.'"></td>
		<td style="height: 60px; width: 210px; font-family: tahoma; font-size: 12px;">Mapname: '.$zeile.'<br>Game: '.$gameplay.'</td>
		</tr>'; 
    }

Punkto trim(): Es wird ein leeres feld ausgegeben.
Punkto explode(): Es wird nichts ausgegeben.

Vielen dank für eure Hilfe. :)
 
Probier mal Folgendes:
PHP:
<?php

	/* Mapcycle */
	$file = 'mapcycle.txt';
	$gametypes = array(
		'de' => 'Entschärfen',
		'cs' => 'Befreien'
	);

	if( file_exists($file) ) {

		$handle = fopen($file, 'r');
		echo '<table>';
		while( $row = trim(fgets($handle, 128)) ) {
			preg_match('/^[^_]+/', $row, $match);
			echo '<tr><td><img src="'.$imagepath.$row.'.gif"></td><td>Mapname: '.$row.'<br>Game: '.$gametypes[$match[0]].'</td></tr>';
		}
		echo '</table>';
		fclose($handle);
	}

?>
 
Es ist jetzt doch noch eine Frage aufgekommen! :-)

Kann man aus dem Text auch bestimmte Zeilen löschen?

Wenn ich die listenserver.cfg auslese, möchte ich natürlich das Rcon Passwort nicht mit ausgeben. Ich habe nun versucht, diese entsprechenden Zeilen quasi auf 0 zu setzen und dann durch trim() zu löschen. Leider wird der gesamte Text gelöscht und nicht nur die bestimmten Zeilen.

PHP:
$cutinfo = array(
		'mapcyclefile' => ' ',
		'hostname' => ' ',
        'sv_passwort' => ' ',
        'rcon_passwort' => ' '
    );


$handle = fopen($file, 'r');
while( $row = trim(fgets($handle, 128)) ) {

preg_match('/^[^_]+/', $row);
            
print'	<tr style="background-color:'.$color.'">		
		<td style="font-family: tahoma; font-size: 12px;">'.$cutinfo[$row[0]].'</td>
	</tr>'; 
    }
 
Zurück