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的例子是使用空格来标记每个单词,但没有我能想到的字符可能不是描述的一部分。这个解决方案适用于我的测试。
是否会出现副作用或特殊情况?或者这是一种非常安全和可接受的方式来获得剩下的线路?
答案 0 :(得分: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
注意:您需要修剪它,因为它包含前导空格
答案 1 :(得分:1)
现在不应该导致任何错误,因为当null
解析其参数时,strtok
会转换为空字符串。
但如果您明确使用strtok('')
形式,那么您可能会更安全一些。它起作用的原因是strtok
期望字符串化的分隔符字符列表作为标记参数。所以这里的空字符串基本上是一个空的分隔符列表。并且没有要查找的分隔符意味着要返回的整个剩余字符串。 )
顺便说一句,这个建议在手册页上给出了in comments。 )