0

私は PHP ページを書いています。大学の学生管理ソフトウェアの非公式 API を作成しました。すべての生徒とその主な教室の配列を (別のサーバー上で) 私に提供します。

古い学生や卒業生も私の cURL API からエクスポートされるという事実を除いて、すべてが機能します。解析する必要がある唯一の値である 20 個 (またはそれくらい) の値があります。

どうもありがとう!


アップデート!これは、完全なスクリプトの出力例です。

{"id":"test1","name":"Test - 1w"}, {"id":"test2","name":"Testo - 2w"}, {"id":"IAmOdd","name":"I was in college last year - 14"}

出力をエコーするためのスクリプトは次のとおりです。

{\"id\":\"$domid\",\"name\":\"$domout - $klasse\"},");

また、配列 $classrooms にない $klasse 値を持つ最後の投稿を削除したくありません。


最終的な解決策

私はこのようにしてしまいました:

if (preg_match("/1a|1b|1c|1d|1e|1u|1s|1y|1x|1w|2a|2b|2c|2d|2e|2u|2s|2y|2x|2w|3a|3b|3c|3d|3e|3u|3s|3y|3x|3w/", $row['navn'])) {
$ok = 1; }
if ($ok == 1) {
    echo utf8_encode("{\"id\":\"$domid\",\"name\":\"$domout - $klasse\"},");
}

これは、現在検証プロセスのために持っているものです。

$classrooms = array('1a','1b','1c','1d','1e','1u','1s','1y','1x','1w','2a','2b','2c','2d','2e','2u','2s','2y','2x','2w','3a','3b','3c','3d','3e','3u','3s','3y','3x','3w');
foreach ($classrooms as $bad) {
 if (strpos($mainclassroom, $bad) !== false) {
       $allow = 0;
 }
 else {
        $allow = 1;         
  }
}
4

2 に答える 2

0

ここでは、おそらく array_filter 関数を使用します。

$filtered_classrooms = array_filter($classrooms, function($value) use $mainclassroom {
    return (strpos($mainclassroom, $value) === false);
});
于 2013-03-29T23:32:48.443 に答える
0

したがって、実際には、入力文字列の一部ではないはずの単語のリストがあります。次に、正規表現が最も便利です。

$bad = preg_match('/1[a-x]|2[a-x]|3a|3b|3c|3d/', $mainclassroom);

もちろん、文字の範囲ではなく、すべてのクラスを個別にリストすることもできます。またはimplode("|", $array)、悪い言葉のリストからリストを作成します。

ただし、コードの問題は、foreach を実行するたび$allow=に if/else で変数を上書きすることでした。

于 2013-03-29T23:37:41.493 に答える