2016-09-29 3 views
0

私はshell_execを使用して私のサーバ上でコマンドを実行し、その結果をechoで表示しています。サーバファイルの選択と表示

ここで、表示するファイルを選択して表示します。これどうやってするの?コードから

<body> 
    <form method="get" action="<?php echo $_SERVER["PHP_SELF"] ?>"> 
     <input type="submit" class="reset_button"/> 
     <p><b>Search</b></p> 
     <?php 
      <input type='text' name='idtest' value='' /> 
      <input type='submit' value='consultar' /> 
     ?> 
     <?php 
      $consulta=$_GET[idtest]; 
      $salida = shell_exec('find/-iname *'.$consulta.'*|sort');  
      echo "<pre>$salida</pre>"; 
     ?> 
</body> 

結果:今

<?php 
    $consulta=$_GET[idtest]; 
    $alltext = shell_exec('find/-iname *'.$consulta.'* |sort|xargs -I{} cat {}');  
echo "<pre>$alltext</pre>"; 
?> 

:あなたは</body>の上、最後の1未満にこのスニペットを追加することができます

:ここ

text1.txt 
text2.txt 
text3.txt 
text4.txt 
+1

ドキュメントを確認してください:http://php.net/manual/en/function.fread.php – Hackerman

+0

ファイルの内容またはファイル名のリストを表示しますか? –

+0

ファイルの内容。リストは既に表示されています。 – Drennos

答えて

1

$サリダ=もしくはshell_exec(。$のconsulta '/ -iname を見つける' ' |ソート');

これは期待どおりに動作しません。 *'.$consulta.'*は、現在のディレクトリのものと一致するように展開されます。それは

私はまた、Webサーバを介してこのような機能を公開することが理にかなっていると想像しています。ファイルシステム全体を検索するのに高価になる可能性があります。リモートからアクセス可能。

どうすればいいですか?

それが私だったら.... filereader.phpの

<?php 
$consulta=$_GET[idtest]; 
$salida = explode("\n", shell_exec('find/-iname \*'.$consulta.'\* | sort')); 
foreach ($salida as $s) { 
    if (is_readable($s)) { 
     print "<a href='filereader.php?src=" . urlencode($s) 
     . "'>" . htmlentities($s) . "</a><br />"; 
    } else { 
     print htmlentities($s) . "<br />"; 
} 
?> 

コンテンツは明白です。

0

はすべてを表示する方法でありますあなたが望むのはちょっとややこしい:ちょうど$salidaを配列として読んで、こうしてal 1ファイルあたりのインク量は、new_page.phpです。 new_page.phpに続いて

<?php 
    $filename=$_GET[filename]; 
    $onetext = shell_exec('cat '.$filename);  
    echo "<pre>$onetext</pre>"; 
?> 
関連する問題