0

私のシステムには、アクティブなインターフェースのリストを提供するスクリプトがあります -

 $ interfaces
 eth0
 lo
 wlan0

ここに私のPHPコードがあります-

 <?php
 $output=shell_exec('./interfaces');
 $string = trim(preg_replace('/\s+/', ' ', $output));
 $string = str_replace("\0","",$string);
 $data = preg_split('/\s+/',$string);  // There was a typo here, changed $output to  
                                        //  $string 
 echo json_encode($data);
?>

私のjqueryがあります-

    $.getJSON('nw/sample1.php', function(data) {

    $(data).each(function(i,item) {

            alert(item);

    });

    });

3アクティブなインターフェイスの 1 つを強調表示するアラート ボックスが表示されるはずです。

たとえば、1 番目のアラート ボックスは"eth0"、2 番目のアラート ボックスは と"lo"表示されますが、期待どおりに機能しません。

私はこれらすべてに慣れていないので、どこが間違っているのかを明確にしてください??

ありがとう

編集 :

ブラウザでの sample1.php の出力

 ["eth0","lo","wlan0"]

**$.each(data, ...) と $data.each ... ** はどちらも同じように動作します。

console.log(データ) 出力 ここに画像の説明を入力

4

2 に答える 2

0

あなたの問題は nw/sample1.php だけだと思います

sample1.php で「通常の」文字列を使用しましたが、$getJSON は魅力的に機能したので、「interfaces」ファイルに格納されたデータを取得する方法に焦点を当てます。sample1.php のコードを次のコードに置き換えて、jQuery JSON が機能していることを確認してください。

<?php
$string = 'eth0 lo wlan0';
$string = str_replace("\0","",$string);
$data = preg_split('/\s+/',$string);
echo json_encode($data);
于 2013-04-18T10:42:25.310 に答える