0
otpauth使用して、文字列から必要なデータを取り出すことができますか?[email protected]を秘密= MYSECRETCODE &発行者= Dropboxのは、どのように私はPHP
otpauth://totp/[email protected] ?秘密= MYSECRETCODE
otpauth:?//totp/github.com/MyUsername発行者= GitHubの&秘密= MySecret
私は秘密のコード、電子メール、発行者、変数にラベルを必要としています。私は爆発を使用してコード化しており、それは第3のものではありません。正規表現を使用して情報を取得する簡単な方法はありますか?
$data = $request['code'];
$remove_rules = substr($data, 15);
$que_exp = explode('?',$remove_rules);
if(array_key_exists(1,$que_exp))
{
if (filter_var($que_exp[0], FILTER_VALIDATE_EMAIL)) {
$email = $que_exp[0];
}
}
$secret_exp = explode('&',$que_exp[1]);
$secret = substr($secret_exp[0], strpos($secret_exp[0], "=") + 1);
if(array_key_exists(1,$secret_exp))
{
$issuer = substr($secret_exp[1], strpos($secret_exp[1], "=") + 1);
}
$label_email = explode(':',$que_exp[0]);
if (!filter_var($label_email[0], FILTER_VALIDATE_EMAIL)) {
if (!filter_var($label_email[1], FILTER_VALIDATE_EMAIL)) {
return 'data error';
}
$email = $label_email[1];
$label = $label_email[0];
}
else
$email = $label_email[0];
if(empty($issuer)) {
if(empty($label))
$issuer = "Account";
else
$issuer = $label;
}
:
はこれを試してみてください。 $ _REQUEST ['secret']はあなたの変数を持っているはずです...おそらく、あなたはparse_url関数を一番上手く見る必要がありますか?例えば; var_dump(parse_url($ url)); –
私はLaravelを使用しています。 $ _REQUEST ['secret']には、 のような値が含まれています。otpauth:// totp/Dropbox:[email protected]?secret = MYSECRETCODE&issuer = Dropbox –