2012-04-03 4 views
0

Gegenwärtig wird jeder td ../ td in nur einer Zeile gedruckt, was den Quelltext sehr schwer lesbar macht, egal wie ich jedes td ../ td Element in einer neuen Zeile drucken kann, um es lesbarer zu machen.Wie man jedes ..</td> auf einer neuen Linie in PHP druckt?

danke für die Antworten. Ich habe versucht, die Pause, aber es druckt auf dem Bildschirm, muss es hier, aber wo?

$entries[$i] = '<td>'.$id[$i] .'</td>'; 
    $entries[$i] .= '<td>'.$username[$i].'</td>'; 
    $entries[$i] .= '<td>'.$first_name[$i].'</td>'; 

Weitere Edit: enter image description here

Die entsprechende HTML

<!-- Main hero unit for a primary marketing message or call to action --> 
     <div class="hero-unit"> 

     <div class="row"> 

<table class="table"> 
<thead> 
<tr> 
<th>#</th> 
<th>First Name</th> 
<th>Last Name</th> 
<th>Username</th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<td>1</td> 
<td>Mark</td> 
<td>Otto</td> 
<td>@mdo</td> 
</tr> 
<tr> 
<td>2</td> 
<td>Jacob</td> 
<td>Thornton</td> 
<td>@fat</td> 
</tr> 
<tr> 
<td>3</td> 
<td>Larry</td> 
<td>the Bird</td> 
<td>@twitter</td> 
</tr> 
</tbody> 
</table> 

    <table class="table table-bordered"> 
    <thead> 
    <tr> 
    <th>ID</th> 
    <th>Username</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Email Address</th> 
    <th>Country</th> 
    <th>Referrer</th> 
    </tr> 
    </thead> 

     <tbody> 
     <tr> 

    <?php 

if (isset($content) && !empty($content) && is_array($content)) {//2 
$i = 0; 
$entries = array(); 


    while(array_key_exists($i, $content)) {//1 

    $entries[$i] = "\n" .'<td>'.$id[$i] .'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$username[$i].'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$first_name[$i].'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$last_name[$i].'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$email_address[$i].'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$country[$i].'</td>'; 
    $entries[$i] .= "\n" .'<td>'.$where_about[$i].'</td>'; 
    //$entries[$i] .= '<td>'.$sample[$i].'</td>'; 

    echo $entries[$i]; 


    $i++; 


}//1 

}//2 


?> 

</tr> 
</tbody> 
</table> 
+0

Konnten Sie dieses Problem mit einer der folgenden Antworten lösen, oder ist es noch offen? – sg3s

Antwort

4

concat "\n" auf der Vorderseite der Aussage

bearbeiten

$entries[$i] = "\n" . '<td>'.$id[$i] .'</td>'; 
$entries[$i] .= "\n" . '<td>'.$username[$i].'</td>'; 
$entries[$i] .= "\n" . '<td>'.$first_name[$i].'</td>'; 
+0

Danke Mann, versucht, aber es funktioniert nicht aus irgendeinem Grund. Siehe meine Bearbeitung. –

+1

sollte gut funktionieren ... –

+0

Ok danke großartig Ich dachte, es würde mein Hauptproblem beheben. Der Quellcode ist der selbe wie der in der Bootstrap Tabelle Beispiel, aber meine Größe wird nicht auf eine andere Auflösung geändert, wo sie den Bearbeitungs Screenshot überprüfen würden –

1

Use '\ n' nach dem td-Tag echo Sie/print

1
<? 
    foreach($array as $single) { 
      echo "<td></td> \n"; 
    } 
?> 
1

Sie können einen Zeilenumbruch zu Ihren Print-Anweisung hinzufügen.

echo "My text\n";

Sie können auch Registerkarten hinzufügen, um es ordentlich gegliederte zu erhalten.

echo "\t\tMy text\n";

1

möchte ich nur hinzufügen: Wenn Sie Windows verwenden, den Code zu lesen, sollten Sie \r\n statt \n nur

1

Nicht sicher, was Sie fragen verwenden, aber wenn Sie möchten, wird man von der loszuwerden:

$s .= '<td>' . $n . '</td>'; 

Einsatz ($ co bedeutet schließen offen)

$co = '</td><td>'; 
$row = '<tr><td>' . $data . $co . $data2 . $co . $data3 . '</td></tr>'; 
+0

hat Ihre Bearbeitung nicht angezeigt wenn ich dies postete –

+0

Wenn das der Fall ist, bitte entweder bearbeiten oder löschen Sie Ihre Antwort, so dass es das OP nicht irre. –

+0

Danke Kerl, check out meine Bearbeitung. Ich dachte, Ihre Hilfe würde das Hauptproblem zur Hand lösen .. –

2

Ein netter Trick ist eine Konstante mit einem Zeilenumbruch zu definieren:

define('NL', "\r\n"); 

Dann haben wir einfach concat, dass Konstante nicht sich Gedanken über unsere Doppel qoutes Nutzung mit Single:

$entries[$i] = '<td>'.$id[$i] .'</td>' . NL . 
       '<td>'.$username[$i].'</td>' . NL . 
       '<td>'.$first_name[$i].'</td>' . NL; 

Same ofcourse Trick kann sein angewendet Registerkarten:

define('TAB', "\t"); 

So können wir etwas Radikales wie dies tun, zum Beispiel:

$entries[$i] = '<tr>' . NL . 
       TAB . '<td>' . $id[$i] . '</td>' . NL . 
       TAB . '<td>' . $username[$i] . '</td>' . NL . 
       TAB . '<td>' . $first_name[$i] . '</td>' . NL . 
       '</tr>' . NL; 

Leerzeichen sind natürlich etwas Besonderes, aber wenn Sie konsistent sind, hält es sogar Ihren Code lesbar!

Und in Ihrem Fall könnten Sie Ihren Code noch cooler machen, indem Sie durch diese Spalten (<td>) mit einer foreach-Schleife durch alle Felder arbeiten.

$entries[$i] = '<tr>' . NL; 

foreach(array('id', 'username', 'first_name') as $key) { 
    $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL; 
} 

$entries[$i] = '</tr>' . NL; 

Jetzt sag mir, das ist nicht cool!

Scheint wie Ihr Code fehlt einfach die Intelligenz, um jede Spalte in einer eigenen Zeile (tr) hinzuzufügen, hier ist Ihre relevanten PHP-Code mit den Korrekturen und vorgeschlagenen Ergänzungen, es sollte funktionieren, aber ich kann es nicht testen.

<?php 

define('NL', "\r\n"); 
define('TAB', "\t"); 

if (isset($content) && !empty($content) && is_array($content)) { 
    $i = 0; 
    $entries = array(); 
    $fields = array('id', 'username', 'first_name', 'last_name', 'email_address', 'country', 'where_about'); 

    while(array_key_exists($i, $content)) { 
     $entries[$i] = '<tr>' . NL; 
     foreach($fields as $key) { 
      $entries[$i] = TAB . '<td>' . ${$key}[$i] . '</td>' . NL; 
     } 
     $entries[$i] = '</tr>' . NL; 

     echo $entries[$i]; 
     $i++; 
    } 

} 
?> 

Als ich dies zu lesen, mit einer Weile durch $ Inhalt nicht zu Fuß sein könnte gute Idee, versuchen foreach($content as $index => $value) stattdessen würde dann $index die equivelant von $i machen, aber Sie würden nicht $content[$index] weil genau diesen Wert verwenden müssen wird in $value in einer foreach anwesend sein.

+0

Danke Mann..Check out meine Bearbeitung für das Problem .. ich dachte, \ n würde es lösen, aber es hasnt –

+0

Ah ich denke, dein Problem ist, dass die weiter Tabelle verursachen, dass es in die rechte Seite des Bildschirms überläuft ... Das ist eine andere Sache. Hast du ein Beispiel, vielleicht einen ausgeschnittenen und geklebten Screenshot mit dem, was das Ergebnis sein sollte? ... – sg3s

+0

Nun, es sollte sich an die Größe anpassen, wie es das Beispiel tut. Sogar die Quelle ist gleich. –

Verwandte Themen