真的很简单,但我可能错过了一个非常简单的观点。
我有一个输入表单,用户将粘贴一个URL以导航到下一部分。
假设用户输入:https://www.facebook.com/connect/login_success.html#access_token=XXXXXXXXXYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZAAAAAAAAAAAAAAAAAABBBBBBBBBBBB&expires_in=0
我希望表单只处理:XXXXXXXXXYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZAAAAAAAAAAAAAAAAAABBBBBBBBBBBB
所以它会完全忽略:
https://www.facebook.com/connect/login_success.html#access_token=
和
&expires_in=0
这有可能吗?
我的表格非常简单:
<form action="home.php" method="GET">
<div class="form-group">
<label for="exampleInputEmail1">Access Token.</label>
<input type="text" class="form-control" id="exampleInputEmail1" name="accesstoken"/>
</div>
<button type="submit" class="btn btn-default btn-block">Confirm</button>
</form>
“自举”
谢谢!
答案 0 :(得分:0)
您可以在&符号('&amp;')上执行explode
(http://nl3.php.net/explode)并将其粘贴在一个字符串或变量中。
答案 1 :(得分:0)
将表单更改为使用POST,如下所示:
<form action="home.php" method="POST">
<div class="form-group">
<label for="exampleInputEmail1">Access Token.</label>
<input type="text" class="form-control" id="exampleInputEmail1" name="accesstoken"/>
</div>
<button type="submit" class="btn btn-default btn-block">Confirm</button>
</form>
然后,您可以在PHP中检索您的变量,如下所示:
<?php $accesstoken = $_GET['accesstoken']; ?>
可以很容易echo
加入JavaScript变量供您使用。
答案 2 :(得分:0)
首先,我建议您在服务器端解析它,而不是客户端(可以关闭JavaScript等)。如果您需要在accesstoken
上使用home.php
作为GET参数,则可以在提交后将用户重定向到此处。无论如何,在服务器端,请使用parse_url:
$urlParts = parse_url($_POST['accesstoken']); // Now you have all URL parts in array
$urlQuery = $urlParts['query']; // Now you have only query part
$queryParts = explode('&', $urlQuery); // Separate them
foreach ($queryParts as $query)
{
$singleQueryPart = explode('=', $query); // Separate key from value
if ($singleQueryPart[0] == 'access_token') // If the key is same as we are looking for...
{
$token = $singleQueryPart[1]; // ...assign value and break loop
break;
}
}
echo $token;
注1:我认为您在第一篇文章中的网址类型为#
,而不是?
)。如果没有,请使用我发布的相同脚本,但将$urlParts['query']
更改为$urlParts['fragment']
。
注2:如果您确实需要/需要使用JavaScript,请查看php.js implementation of parse_url。
注3:处理URL操作的另一个不错的JS库似乎是URI.js。
答案 3 :(得分:0)
我找到了一个更简单的解决方案来解决我的问题:
<script>
$(document).ready(function() {
$('#btnSubmit').click(function(e) {
var val = document.getElementById('exampleInputEmail1').value;
$('#exampleInputEmail1').val(val.substring(val.indexOf("=") + 1, val.indexOf('&')));
});
});
</script>