-3

同じディレクトリに保存された.txtから情報を取得するphpから情報を取得するリスト項目を作成しようとしています。レイアウトを含む HTML と、使用する関数を含むいくつかの php ファイルがあります。

これは html です。つまり、php から変数を取得します。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <h1>Folks On Your Mailing List</h1>
       <?php
         if($register_users){
            foreach ($register_users as $user) {
               list($name,$email) = $user;
               echo "<li> $name :<a href='mailto:$email'>$email</a></li>";
               }
          } else{
             echo "No register menbers";
          }
       ?>
</body>
</html>

テンプレートと使用する関数を含めた php を次に示します。

<?php 
    include "../functions.php";

    $register_users = get_registered_users();


    include "registered_user.tmpl.php";



?>

そして最後になりましたが、関数

function get_registered_users($path = MAILING_LIST){
    $users = file($path);



    foreach ($users as $user) {
        $name =  explode(": ", $user);
        return $name ;
    }

$path は、こ​​の同じドキュメントで定義されている定数ですが、問題ありません。それは問題ではありません。$name を返し、テンプレートに渡される $registers_users に割り当てるときに問題が発生します。名前の最初の文字と電子メールの最初の文字のみが出力されます。

4

2 に答える 2

1

戻ると、関数が終了します。すべてのユーザーが必要な場合は、foreach ループの外でその配列を返す必要があります。しかし、$users は既に配列であるため、展開を行う以外に foreach ループも必要ありません。

于 2013-06-12T19:03:33.280 に答える
0

次のようなものが欲しいと思います:

function get_registered_users($path = MAILING_LIST) {
    $users = file($path, FILE_IGNORE_NEW_LINES);

    $output = array(); //Create an array to hold the array($parts)
    foreach ($users as $user) {
        $parts = explode(": ", $user);
        $output[] = $parts; //Add the $parts to the bigger array
    }
    return $output;
}
于 2013-06-12T19:13:50.567 に答える