PHP trim, rtrim Problem!

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo Leute

Habe hier eine Seite...


PHP:
<?php 
 
      $lasttracks = file('lasttracks.txt');
 
?>
     <ul id="lastplayed-body">
      <li class="lastplayed-title"><?php echo rtrim($lasttracks[0]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[1]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[2]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[3]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[4]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[5]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[6]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[7]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[8]); ?></li>
      <li class="lastplayed-list"><?php echo rtrim($lasttracks[9]); ?></li>
     </ul>

Damit nicht beim jedem </li> umgebrochen wird "das wird es wenn ich rtrim nicht benutze" habe ich es halt jetzt so gemacht, glaube aber das das so nicht ganz richtig ist. Gibt es eine Möglichkeit das ganze oben im Code schon für alle Zeilen
vorzubereiten? weil wie ihr seht muss ich das hier für jede Zeile angeben und ich
denke das kann so nicht richtig sein.
Hab schon einiges versucht jedoch bekomme ich nonstop eine array given Fehler.
 
Laut php.net wäre der richtige Weg
PHP:
function trim_value(&$value) 
{ 
    $value = trim($value); 
}

$fruit = array('apple','banana ', ' cranberry ');
array_walk($fruit, 'trim_value');
 
zeig mal, wie du lasttracks befüllst.

btw. hast du schonmal was von schleifen gehört? ;)
 
PHP:
    <li class="lastplayed-list"><?php echo $lasttracks[1]; ?>
</li>
    <li class="lastplayed-list"><?php echo $lasttracks[2]; ?>
</li>
    <li class="lastplayed-list"><?php echo $lasttracks[3]; ?>
</li>
 
Möchte verhindern das der HTML-Code so aussieht...also nutze ich rtrim für jede Zeile
aber das kann nicht richtig sein, ich habe 40 Zeilen und muss 40 mal rtrim anweden?

FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES

Das klappt, dann habe ich aber nach jeder ausgegebenen Zeichenkette zwar kein Umbruch mehr dafür aber ein Leerzeichen am Ende jeder Zeichenkette, also auch nicht das was ich mir vorgestellt habe:freak:
 
Belee schrieb:
PHP:
    <li class="lastplayed-list"><?php echo $lasttracks[1]; ?>
</li>
    <li class="lastplayed-list"><?php echo $lasttracks[2]; ?>
</li>
    <li class="lastplayed-list"><?php echo $lasttracks[3]; ?>
</li>

Möchte verhindern das der HTML-Code so aussieht...also nutze ich rtrim für jede Zeile
aber das kann nicht richtig sein, ich habe 40 Zeilen und muss 40 mal rtrim anweden?

Nö. :)

PHP:
<?php foreach ($lasttracks as $track): ?>    <li class="lastplayed-list"><?php echo trim($track); ?></li>
<?php endforeach; ?>

Statt foreach kannst du auch ein anderes Schleifenkonstrukt nehmen, falls du z. B. nur eine begrenzte Anzahl Zeilen ausgeben willst.
 
Das ist aber hinfällig wenn man verschiedene CSS Klassen verwendet. Da kannst du dann mit Schleifen schlecht arbeiten. Oder aber man bläht den Code auf, aber nur um trim bzw. rtrim anzuwenden? also dann kann man es ja auch so machen wie ich im obigem Code 40 mal rtrim anweden, kommt dann aus gleiche.

Gibt es denn keine unabhängige Methode? also einfach $lasttracks laden, leerzeichen und Umbrüche entfernen und fertig, jede Zeile ist in $lasttracks jetzt sauber und kann mit echo sauber ausgegeben werden?
Ergänzung ()

Alles muss man selbst machen ...

PHP:
$lasttracks = array_map('rtrim',file('lasttracks.txt'));

So einfach geht das, ich frage mich langsam wer mehr drauf hat? :D;)
 
Zurück
Oben