daspossum
Goto Top

PHP String inhalte wiedergeben

Hallo zusammen,

ich arbeite gerade an ein kleines Script das mir Linuxbenutzer auf den Webserver ausgeben soll.
Bisher habe ich folgenden Script geschrieben:

 

<?php 

$output= shell_exec("cut -d: -f1 /etc/passwd");  
// wiedergabe
<th><?php echo nl2br($output);?></th
?> 

Die Ausgabe des Strings funktioniert auch aber leider nur als zusammenhängend. Ich würde gerne die Namen pro Tabellen Feld
und nicht alle Namen ein Feld.

Mein ansatz war:
 

<?php 
//$string = explode(" ", $output); 
//for($i = 0; $i < count($string); $i++){
//      echo "<tr><td>$i = $string[$i] </td></tr><br />"; 
//}
?> 
Leider hat es so nicht funktioniert, ich würde gerne aus den Namen Buttons machen oder sie auf eine weitere Seite verlinken. Ich kenne mich
leider auch nicht so gut mit PHP aus und habe mir erstmal versucht Basics zu erarbeiten. Ist mein Vorhaben in PHP überhaupt möglich oder habe
ich den falschen Ansatz?

gruß daspossum

Content-ID: 284057

Url: https://administrator.de/contentid/284057

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

SlainteMhath
Lösung SlainteMhath 28.09.2015 aktualisiert um 10:07:28 Uhr
Goto Top
Moin,

versuchs doch mal mit
$string = explode("\n", $output);   
Das sollte den String korrekt trennen.

lg,
Slainte
DasPossum
DasPossum 28.09.2015 um 10:11:12 Uhr
Goto Top
ich hab den code jetzt so aufgebaut
<?php
$output= shell_exec("cut -d: -f1 /etc/passwd");  

$string = explode("\n", $output);  
echo "<table border='1'>";  
for($i = 0; $i < count($string); $i++){
        echo "<tr><td>$i = $string[$i] </td></tr>";  
}
echo "</table>";  
?>

Die Ausgabe ohne table funktioniert sehr gut, wenn ich abert eine Table machen möchte funktioniert die Ausgabe auf den Webserver nicht mehr. Gibt es dafür auch eine Lösung, es kommt keine Fehlermeldung, die Seite ist einfach nur Weiß.

lg,
daspossum
SlainteMhath
SlainteMhath 28.09.2015 um 10:16:21 Uhr
Goto Top
Du musst den String für echo korrekt zusammensetzen: $i und $string gehören ausserhalb der Anfürungszeichen:

 echo "<tr><td>". $i ."=". $string[$i] ."</td></tr>";   
DasPossum
DasPossum 28.09.2015 um 11:22:59 Uhr
Goto Top
danke, es hat sehr gut funktioniert. Habe das ganze jetzt so gelöst, damit beide in tabelenform nebeneinander ausgegeben werden. Habe dann noch Classen vergeben, damit ich die Tabellen etwas anpassen kann. Jetzt muss ich nur noch rausfinden wie ich die Ausgaben verlinken kann.
table align="left" border="2">  
            <tr>
                <th>User</th>
            </tr>
        <?php
        $output= shell_exec("cut -d: -f1 /etc/passwd");  
        $string = explode("\n", $output);  
        for($i = 0; $i < count($string); $i++){
            echo "<tr><td>".$i."=".$string[$i]."</td><tr>";  
        }
        ?>
        </table>
        <table align="left" border="2">  
            <tr>
                <th>ID</th>
            </tr>
        <?php
        $bid = shell_exec("cut -d: -f3 /etc/passwd");  
        $bebid = explode("\n", $bid);  
        for($i = 0; $i < count($bebid); $i++){
                echo "<tr><td>".$i."=".$bebid[$i]."</th></tr>";  
        }
SlainteMhath
SlainteMhath 28.09.2015 aktualisiert um 11:30:17 Uhr
Goto Top
was meinst du mit "verlinken"? User und ID in der gleichen Table? in etwa so:
table align="left" border="2">  
            <tr>
                <th>User</th><th>ID</th>
            </tr>
        <?php
        $output= shell_exec("cut -d: -f1 /etc/passwd");  
        $string = explode("\n", $output);  
		$bid = shell_exec("cut -d: -f3 /etc/passwd");  
        $bebid = explode("\n", $bid);  
		
        for($i = 0; $i < count($string); $i++){
            echo "<tr>"  
			echo "<td>".$i."=".$string[$i]."</td>";  
			echo "<td>".$i."=".$bebid[$i]."</td>  
			echo "</tr>";  
        }
        ?>
        </table>

ist zwar nicht sauber, aber fürs erste reicht das aus.
DasPossum
DasPossum 28.09.2015 um 12:04:49 Uhr
Goto Top
Ich würde gern bei jeden Benutzer ein neues Fenster öffnen. Damit man dann Benutzereinstellungen vornehmen kann oder sich anzeigen lassen kann.
SlainteMhath
SlainteMhath 28.09.2015 um 12:21:14 Uhr
Goto Top
Quick'n'Dirty(tm)

echo "<td>".$i."=<a href='/benutzer_einstellungen.php?benutzer=".urlencode($string[$i])."' target='_new'>". $string[$i] ."</a></td>";