我正在创建一个具有搜索功能的应用程序,我希望它的设置类似于 Google 或 Twitter 搜索,其中在根 URL 处有一个带有搜索表单的登录页面,然后通过查询传递来自该表单的数据字符串,它构成了结果页面的 URL(例如:www.domain.com/search?query=my+search+query)。
到目前为止,我知道如何通过使用 params 哈希的搜索传递数据,但我想知道如何传递数据并使用查询字符串访问它。
我最好的猜测是它是通过路由完成的,您在路由中包含以下内容以进行搜索操作:
:query => params[name_of_search_form_element]
Run Code Online (Sandbox Code Playgroud)
然后使用 params 哈希在控制器中访问这个值,但我不确定这是否是最好的方法。有什么想法吗?谢谢!
我正在开发一个调用 PHP 二进制文件(通过 CGI)来处理脚本的网络服务器。
这是问题所在:
PHP 脚本没有选择命令行参数。例如,如果客户端请求path/to/file.php?test=value,则$_GET数组为空。
我试过在环境变量 ( QUERY_STRING) 中传递参数,但它们仍然没有显示出来。
如何将查询字符串参数传递给 PHP 应用程序?
由于我是Web应用程序开发的新手,我目前在实现某些测试功能方面遇到了一些困难.
作为我目前工作的项目的一部分(用于处理付款的MVC 3 Web App)我被要求创建一个可以通过URL以这种方式访问的测试模式:
http://websiteurl?testmode=1
Run Code Online (Sandbox Code Playgroud)
这背后的想法是,当其中一个开发团队将testmode参数添加到URL时,会自动生成一组表单值,以便在每次测试应用程序时节省输入数据的时间.
目前我在控制器中有一个if语句,它使用Request.QueryString来设置下面的参数是我当前使用的代码:
if (Request.QueryString.AllKey.Contains("tm"))
{
if (Request.QueryString["tm"] == 1)
{
insert values to be generated
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于上下文,如果有什么是实现这一目标的最佳方法?
是否可以使用模拟框架(如Moq或RhinoMocks)来创建虚假存储库而不是从数据库中检索结果,或者将测试数据预加载到数据库中会更好吗?
我正在使用 $_REQUEST 检索参数。有没有办法找到总没有。URL 中的参数,而不是检索每个参数然后计数?
我正在使用Html.ActionLink(string linkText, string actionName, object routeValues)重载将一些参数发送到操作方法..
有时我需要传递一个空参数值,如: ?item1=&item2=value
我指定的匿名类型创建,并通过作为帕拉姆routeValues,但两者null并string.Empty导致URL省略了空item1PARAM。
new { item1 = null, item2 = "value" }
new { item1 = string.Empty, item2 = "value" }
new { item1 = "", item2 = "value" }
// all result in:
?item2=value
Run Code Online (Sandbox Code Playgroud)
我可以手动创建 URL,但我想使用辅助方法。
建议?
为什么在使用http_build_query函数构建查询字符串时,它会对[]值外的方括号进行 urlencode ,如何摆脱它?
$query = array("var" => array("foo" => "value", "bar" => "encodedBracket["));
$queryString = http_build_query($query, "", "&");
var_dump($queryString);
var_dump("urldecoded: " . urldecode($queryString));
Run Code Online (Sandbox Code Playgroud)
输出:
var%5Bfoo%5D=value&var%5Bbar%5D=encodedBracket%5B
urldecoded: var[foo]=value&var[bar]=encodedBracket[
Run Code Online (Sandbox Code Playgroud)
该函数在输出的第一行正确地对 a [inencodedBracket[进行了urlencoded ,但是在var[foo]=and 中编码方括号的原因是什么var[bar]=?如您所见, urldecoding 字符串也解码了值中的保留字符,encodedBracket%5B应该保持原样,以便查询字符串正确而不是encodedBracket[.
根据第 2.2 节统一资源标识符 (URI) 的保留字符:通用语法
URI 包括由“保留”集中的字符分隔的组件和子组件。这些字符被称为“保留”,因为它们可能(或可能不)被通用语法、每个方案特定的语法或 URI 解引用算法的实现特定的语法定义为定界符。如果 URI 组件的数据与作为分隔符的保留字符的用途发生冲突,则必须在形成 URI 之前对冲突数据进行百分比编码。
保留 = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / …
我有一个像下面这样的网址,
http://test.com/testing/test/12345
Run Code Online (Sandbox Code Playgroud)
12345 是 ID。我想使用查询字符串来获取它。如何在javascript中取这个值?
我需要为Android制作一个简单的应用程序,每隔25秒将我的智能手机的位置发送到Web应用程序.我的网络应用程序在线,现在我可以手动传递值,如下所示:
http://mywebapp.com/coordinates/create?latitude=18.463108&longitude=-69.929117
我是Android开发的绝对初学者,所以试着一步一步解释我.
我试图将参数传递给wordpress页面.我不想将它作为查询字符串传递.我想以基于斜线的网址传递.
例:
http://localhost/mysite/pagename?user=myname
Run Code Online (Sandbox Code Playgroud)
成
http://localhost/mysite/pagename/myname
Run Code Online (Sandbox Code Playgroud)
如何functions.php在wordpress自定义主题中使用我的文件来实现这一目的?
我目前住在Bizzaro World,有一位客户.
因为我们正在编写的symfony应用程序将响应注入到另一个应用程序的页面中,所以我们被迫只为应用程序提供一个URL,但幸运的是我们确实将查询字符串完整地传递给了我们.
因此,我需要与symfony如何做事完全相反,这是一种旧式的MVC方法.我需要路由通过查询字符串参数工作,路由到正确的控制器并呈现正确的响应,而不是使用标准的,理智的路径方法.
所以网址将是,http://www.bizzaro.com/appname?route=%2fblog而不是http://www.bizzaro.com/appname/blog,等等.
在路由部分中有很好的例子,说明如何确保查询字符串作为参数传递给控制器操作,但不是这种相当回归的方法.
我实现了Corentin Dandoy在下面提出的解决方案2,但稍微修改以防止在查找根时出现循环.
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class FrontControllerControllerController extends Controller
{
/**
* Forward the request to the appropriate controller
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function indexAction(Request $request)
{
// get the parameter that specifies the route to the 'real' homepage controller
$homeroute = $this->container->getParameter('homeroute');
$route = $request->query->get('route');
// Convert the query-string route into a valid path route
$path = '/'.$route; …Run Code Online (Sandbox Code Playgroud) query-string ×10
php ×4
parameters ×2
routing ×2
url ×2
actionlink ×1
android ×1
asp.net-mvc ×1
c# ×1
cgi ×1
forms ×1
gps ×1
http ×1
javascript ×1
mocking ×1
mysql ×1
razor ×1
rewrite ×1
symfony ×1
testing ×1
themes ×1
urlencode ×1
wordpress ×1