0

こんにちは、私は配列を持っていて、変数を関数に渡したいです。

'#\@(.*?)\;#si' =>  'some before text' . retrieveName('$1') . 'some after text,'

function retrieveName($poster_id){
    $sanitized_id = sanitizeIn($poster_id);

    $getname = mysql_query("SELECT * FROM users WHERE userid = '$sanitized_id';") 
                or die(mysql_error());
    $namerow = mysql_fetch_array($getname);
    $exists = mysql_num_rows($getname);

    if($exists == "0"){
      return $sanitized_id;
    } else {
      return $namerow['username'];
    }
}

の値を取り、$1そのIDを持つユーザーをデータベースで確認してから、ユーザー名を返すことになっています。ただし、retrieveNameにパラメーターが渡されていません

4

1 に答える 1

1

retrieveName関数は次のようになります。

function retrieveName($poster_id){
    $sanitized_id = sanitizeIn($poster_id);
    $get_name = mysql_query("SELECT * FROM users WHERE userid = '$sanitized_id';") or die(mysql_error());
    $name_row = mysql_fetch_array($get_name);
    return $name_row['username'];
}

そこにエラーチェックを配置することを強くお勧めしますが、IDが見つからない場合はどうなりますか?

編集:

「preg_replaceテンプレート」を実行しようとしている場合、行は次のようになります

'#@(.*?);#sie' =>  '"some before text".retrieveName("\1")."some after text"',

コードを実行するための修飾子の「e」。

これは変更する必要があります。たとえば、「こんにちは、@ lserni ;、どうですか?」「こんにちは、テキストの前にいくつかレオナルド・セルニサム、テキストの後にどうですか?」

于 2012-07-09T06:13:07.890 に答える