1

ユーザー アクション リクエストを読み取り、それらをコンポーネントに解析するための PHP スクリプト。例、ユーザーが入力するSET Colour = Blueか、describe Chocolate Cake = The best cake ever!私は次のように使用しています:

$actionKeyword = strtok( $actionRequest, " " ); // keyword followed by space
$name = strtok( "=" ); // Then name followed by equals
$description = strtok(null); // get the rest of the string

残りの文字列を取得しても何も見つかりませんでした。PHP.net の例では、スペースを使用して各単語をトークン化していましたが、説明の一部ではない可能性があると思われる文字はありませんでした。このソリューションは私のテストで機能します。

これが失敗する副作用や特殊なケースはありますか? それとも、これは行の残りを取得するための完全に安全で許容可能な方法ですか?

4

2 に答える 2

1

はい、それを行うことができます-またはstrtok("")、トークンなしで呼び出すだけです...

$actionKeyword = strtok( "describe Chocolate Cake = The best cake ever!", " " ); // keyword followed by space
$name = strtok( "=" ); // Then name followed by equals
$description = strtok(""); // get the rest of the string

作業例はこちら

注:先頭のスペースが含まれているため、トリミングする必要があります

于 2012-06-19T12:54:59.093 に答える
1

がパラメータを解析するnullときに空の文字列に変換されるため、現在はバグが発生することはありません。strtok

strtok('')ただし、フォームを明示的に使用すると、おそらく少し安全になります。これが機能する理由はstrtok、区切り文字の文字列化されたリストがトークン パラメータとして期待されるためです。したがって、ここでの空の文字列は、基本的に区切り文字の空のリストです。また、検索する区切り文字がないということは、残りの文字列全体が返されることを意味します。)

ちなみに、このアドバイスはマニュアルページのコメントに記載されています。)

于 2012-06-19T13:20:45.603 に答える