我使用php函数 sscanf 来解析字符串和extrac参数。
此代码:
$s='myparam1=hello&myparam2=world';
sscanf($s, 'myparam1=%s&myparam2=%s', $s1, $s2);
var_dump($s1, $s2);
显示:
string(20) "hello&myparam2=world" NULL
但我想在$ s1中输入 hello ,在$ s2中输入世界。
任何帮助?
答案 0 :(得分:0)
%s
与正则表达式中的\w
不等价:它不会只提取字母数字
$s='myparam1=hello&myparam2=world';
sscanf($s, 'myparam1=%[^&]&myparam2=%s', $s1, $s2);
var_dump($s1, $s2);
但在这种情况下使用parse_str()可能是更好的选择
$s='myparam1=hello&myparam2=world';
parse_str($s, $sargs);
var_dump($sargs['myparam1'], $sargs['myparam2']);
答案 1 :(得分:0)
如何使用regular expressions?
以下是一个例子:
$string = 'myparam1=hello&myparam2=world';
// Will use exactly the same format
preg_match('/myparam1=(.*)&myparam2=(.*)/', $string, $matches);
var_dump($matches); // Here ignore first result
echo("<br /><br />");
// Will match two values no matter of the param name
preg_match('/.*=(.*)&.*=(.*)/', $string, $matches);
var_dump($matches); // Here ignore first result too
echo("<br /><br />");
// Will match all values no matter of the param name
preg_match('/=([^&]*)/', $string, $matches);
var_dump($matches);
在所有三种情况下,matches数组都包含params。
我非常相信它会更好。 祝你好运!