2

私はスクリプト作成の初心者であり、コードのどこに問題があるかを見つけようとしています。顧客の詳細を含むテキスト ファイルがあります。ファイルの 1 行目はユーザー名、2 行目は本名です。この詳細は、php に渡す必要があります。まず、ディレクトリ内の最も古いファイルを見つける必要があります。顧客のユーザー名を返す bash スクリプトを作成しました。

oldest=`ls -tr1 temp/data/*.details|head -1`
head -n1 $oldest

これにより、odest ファイル (temp/data/xxx.details) が検索され、ユーザー名 (xxx としましょう) が返されます。

さて、phpに:

$username = shell_exec('./oldest_order.sh');
$name = shell_exec('head -2 temp/data/'.$username.'.details | sed -n 2p');

PHP でユーザー名を取得できます。最初の行は xxx ですが、2 行目は機能しません。ただし、「.$username.」を変更すると xxx まで、それは機能するので、問題はこの変数のどこかにあります。

ご意見をお聞かせください。

4

1 に答える 1

0

おそらく、最後または最初に改行またはスペースがあります。

を実行することで確認できますvar_dump($username);。これにより、文字列の実際の長さがわかり、必要と思われる長さと比較できます。

最初または最後に空白がある場合は、次を使用できます。

$name = shell_exec('head -2 temp/data/'.trim($username).'.details | sed -n 2p');
于 2013-03-08T21:34:35.580 に答える