2011-01-04 7 views
2

Ich habe eine Textdatei, die in es beispielsweise mehrere Namen bekommen hat:Wie kann ich die Zeilenvorschübe am Ende der von Datei() zurückgegebenen Elemente beseitigen?

mathew 
james 
kelvin 
peter 
jackson 
linak 
thomas 

der Hauptcode ist unten angegeben:

$names = file(names.txt); 

    foreach ($names as $name) { 

    //then this call to a function 

    $data = 'localhost/q?detail='.$name; 

    //////do some code etc.. 

    //insert into table 
    } 

mein Problem ist es wie localhost/q?detail=mathew%0A und nächste localhost/q?detail==%0D%0A und ruft anschließend localhost/q?detail=james%0A

Wie werde ich diese %0D%0A Dinge loswerden?

+3

*** CHARAKTER **** –

Antwort

3

Das sind Leitungsabschlüsse (oder Separatoren, je nachdem, wie man es betrachtet) und sind standardmäßig in den Positionen von file(), wie die Dokumentation Staaten zurück enthalten:

Gibt die Datei in einem Array. Jedes Element des Arrays entspricht einer Zeile in der Datei, wobei das Zeilenende noch angehängt ist.

- PHP documentation: file

sie zu entfernen, übergeben Sie einfach die FILE_IGNORE_NEW_LINES Flagge file():

FILE_IGNORE_NEW_LINES

Sie am Ende jedes Array-Element nicht Newline hinzufügen

Also in Ihrem Code tun gerade folgendes:

$names = file('names.txt', FILE_IGNORE_NEW_LINES); 
+0

was Sie gesagt haben für Vornamen korrekt ist, und es ist ohne besondere charater ... aber ab dem nächsten ab es ist kommt leer !!! Kein Name, den es nimmt ... warum? – mathew

+0

ja ich habe es müssen Sie hinzufügen FILE_SKIP_EMPTY_LINES dann wird es funktionieren – mathew

+0

Danke Mann, ich habe alle diese Variablen vergessen ... – mathew

Verwandte Themen