-2

$skill文字列( )と正規表現で許可されている文字のリストを受け取る関数を書いています。

これが宿題の要件です

  1. スキル名:必須; 長すぎることはできません。スペース、ハイフン、アポストロフィ(およびもちろん英数字)を含めることができますが、他の文字は含めることができません
  2. この手順の一部として、文字列と許可された文字(または許可されていない文字、あるいは正規表現)のリストを受け取り、エラーメッセージを返すphp関数が必要です(文字列が要件に一致しません)、または空の文字列(文字列が要件に一致する場合)。この関数には、わかりやすい名前を付けてください。

これは私が持っているコードです

function validate_skill($skill, $list) { 
if (preg_match('/['.$list.']/',$skill)) {
        echo "The skill contains a match.<br />";
    }else{
    echo "The skill does not contain a match.";
    }
}

空白のページしか表示されません。関数をコメントアウトすることで、ページが機能します。これは、変数を式の中に含めるための適切な方法ですか?

4

1 に答える 1

1

要件を誤解しているか、これに間違ってアプローチしています。要件の簡略化されたバージョンは次のとおりです。

  1. 関数には、スキル名とある種の検証文字列(この場合、許可された文字のリスト、別名ホワイトリスト)の2つの引数が必要です。了解しました✔</li>
  2. スキル名はそれほど長くないでください。これは、長さを制限する必要があることを意味します。✘</li>
  3. 文字列が許可された文字リストと一致したことを検証することにより、文字列がそれらのみと一致し、他には何も一致しないことを確認する必要があります。現在、リスト内の文字のいずれかが見つかったかどうかを確認しています。✘</li>
  4. 関数はエラー(または何も返さない)を返す必要があるため、それ自体では何もエコーしないはずです。✘</li>

あなたはそれらの点に取り組んでいるはずです。

また、別の注意点として、構文エラーがあります。echo echo、おそらくelse echo

于 2012-10-11T18:41:48.550 に答える