.htaccess重写以保存获取URL参数

在HTACCESS URL重写之后,我遇到了使URL参数工作的问题。 我的htaccess重写如下: RewriteEngine on RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 意思是: domain.com/index.php?lang=en&page=product显示为domain.com/en/product 由于某种原因,当我添加一个?model=AB123&color=something在我的URL结束时,我无法使用PHP中检索这些参数$_GET['model']和$_GET['color']即使它们存在于显示的URL中。 为什么变量不通过? 答案 您需要附加[QSA](查询字符串附加)标签。尝试 RewriteEngine on RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA] 看http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html 来自: stackoverflow.com

“参数”与“参数”

我有范围 和争论有点混乱,并没有真正注意何时使用其中一种,何时使用另一种。 你能告诉我吗? 答案 参数是作为方法签名(方法声明)一部分的变量。 考虑以下代码: void Foo(int i, float f) { // Do things } void Bar() { int anInt = 1; Foo(anInt, 2.0); } 这里i和f是参数,并且anInt和2.0是论据。 来自: stackoverflow.com

Android:如何将参数传递到Asynctask的OnPreeXecute()?

我用一个AsyncTask用于加载我作为内部类实现的操作。 在onPreExecute()我显示一个加载对话框,然后再次隐藏在onPostExecute()。但是对于某些加载操作,我事先知道它们会很快完成,因此我不想显示"加载"对话框。 我想通过一个布尔参数来指示这一点onPreExecute()但显然是出于某种原因onPreExecute()不使用任何参数。 显而易见的解决方法可能是在我的异步箱或外部类中创建一个成员字段,我必须在每个加载操作之前都必须设置,但这似乎不是很优雅。有一个更好的方法吗? 答案 您可以覆盖构造函数。就像是: private class MyAsyncTask extends AsyncTask<Void, Void, Void> { public MyAsyncTask(boolean showLoading) { super(); // do stuff } // doInBackground() et al. } 然后,在调用任务时,请执行类似的操作: new MyAsyncTask(true).execute(maybe_other_params); **Edit:**这比创建成员变量更有用,因为它简化了任务调用。 MyAsyncTask task = new MyAsyncTask(); task.showLoading = false; task.execute(); 来自: stackoverflow.com

AngularJS UI路由器在没有URL的状态之间传递数据

我面临这个问题,即在两个状态之间传递数据而不公开URL中的数据,就像用户无法真正直接登陆该状态。 例如。我有两个州" A"和" B"。我正在进行一些服务器呼叫,以状态为" A",并传递对状态" B"的响应。服务器调用的响应是一个字符串消息,它很长,因此我无法在URL中公开。 因此,在无需使用URL参数的情况下,Angular UI路由器中有什么方法可以传递状态之间的数据? 答案 我们可以用params,,,,新的UI-Router的功能: API参考 / ui.router.state / $ state -provider params可选地配置在URL中声明的参数的地图,或定义其他非AURL参数。对于要配置的每个参数,请添加一个键入参数名称的配置对象。 看到一部分:"…or defines additional non-url parameters…" 因此,状态DEF是: $stateProvider .state('home', { url: "/home", templateUrl: 'tpl.html', params: { hiddenOne: null, } }) 很少有示例形成上面提到的文档: // define a parameter's default value params: { param1: { value: "defaultValue" } } // shorthand default values params: { param1: "defaultValue", param2: "param2Default" } // param will be array [] params: { param1: { array: true } } // handling the default value in url: params: { param1: { value: "defaultId", squash: true } } // squash "defaultValue" to "~" params: { param1: { value: "defaultValue", squash: "~" } } 扩展 - 工作示例:http://plnkr....

Bash 中的脚本参数

我正在尝试制作一个 shell 脚本,应该像这样使用: ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt 然后该脚本会将图像文件转换为文本文件。 #!/bin/bash export HOME=/home/kristoffer /usr/local/bin/abbyyocr9 -rl Swedish -if ???fromvalue??? -of ???tovalue??? 2>&1 但我不知道如何获得-from和-to价值观。 答案 您提供给 bashscript 的参数将出现在变量中$1和$2和$3其中数字指的是参数。$0是命令本身。 参数由空格分隔,因此如果您提供-from和-to在命令中,它们也将出现在这些变量中,因此: ./ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt 你会得到: $0 # ocrscript.sh $1 # -from $2 # /home/kristoffer/test.png $3 # -to $4 # /home/kristoffer/test.txt 省略可能会更容易-from和-to, 喜欢: ocrscript.sh /home/kristoffer/test.png /home/kristoffer/test.txt 然后你将拥有: $1 # /home/kristoffer/test.png $2 # /home/kristoffer/test.txt 缺点是您必须按正确的顺序提供它。 然后你可以这样做: /usr/local/bin/abbyyocr9 -rl Swedish -if "$1" -of "$2" 2>&1 周围的双引号$1和$2并不总是必要的,但建议这样做,因为如果不将某些字符串放在双引号之间,它们将无法工作。...

bash:逐条读取文件,然后将每个段作为参数处理到其他prog

我有一些肮脏的工作要做,所以bash脚本似乎是一个不错的选择。我是Bash的新手,经历使我感到沮丧。 文件mapfiles.txt包含如下行。每条线的四个部分被一个空白分开。每个段代表外部程序名称" prog"的输入参数。例如," cm19_1.png"是filename ," 0001"index ," 121422481"longitude ,和" 31035995"latitude。 文件:mapfiles.txt cm19_1.png 0001 121422481 31035995 cm19_2.png 0002 121423224 31035995 cm19_3.png 0003 121423967 31035995 ... 我想对每行执行类似的命令。如下所示,PROG的输入参数顺序略有不同。因此,编写BASH脚本以处理重复工作是很有意义的。 [Usage] prog <index> <longitude> <latitude> <filename> example: prog 0001 121422481 31035995 cm19_1.png 通常,BASH脚本将以这种方式运行: 从mapfiles.txt读取一行 分开细分市场 用正确的参数顺序调用prog 这是run.sh。 #!/bin/sh input=mapfiles.txt cmd=prog while read line do file=$(echo $line | cut -d' ' -f1) key=$(echo $line | cut -d' ' -f2) log=$(echo $line | cut -d' ' -f3) lat=$(echo $line | cut -d' ' -f4) echo $cmd $key $log $lat $file done < "$input" 我期望的是...

C

我使用下面的代码向服务器发送 POST 请求: string url = "http://myserver/method?param1=1&param2=2" HttpClientHandler handler = new HttpClientHandler(); HttpClient httpClient = new HttpClient(handler); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url); HttpResponseMessage response = await httpClient.SendAsync(request); 我无权访问服务器进行调试,但我想知道此请求是作为 POST 还是 GET 发送? 如果是 GET,我如何更改我的代码以发送 param1 答案 更清洁的替代方案是使用Dictionary来处理参数。 private static readonly HttpClient httpclient; static MyClassName() { // HttpClient is intended to be instantiated once and re-used throughout the life of an application. // Instantiating an HttpClient class for every request will exhaust the number of sockets available under heavy loads....

C ++标识符未定义

我是C ++的新手,我不明白为什么要遇到此错误。在5个相似的3个标记错误的5个语句中,但其他两个是可以的。错误是在主函数中。 #include <iostream> using namespace std; // Function declaration void getGallons(int wall); void getHours(int gallons); void getCostpaint(int gallons, int pricePaint); void getLaborcharges(int hours); void getTotalcost(int costPaint, int laborCharges); // Function definition void getGallons(int wall) { int gallons; gallons = wall / 112; cout << "Number of gallons of paint required: " << gallons << endl; } // Function definition void getHours(int gallons) { int hours; hours = gallons * 8; cout << "Hours of labor required: " << hours << endl; } // Function definition void getCostpaint(int gallons, int pricePaint) { int costPaint; costPaint = gallons * pricePaint; cout << "The cost of paint: " << costPaint << endl; } // Function definition void getLaborcharges(int hours) { int laborCharges; laborCharges = hours * 35; cout << "The labor charge: " << laborCharges << endl; } // Funtion definition void getTotalcost(int costPaint, int laborCharges) { int totalCost; totalCost = costPaint + laborCharges; cout << "The total cost of the job: " << totalCost << endl; } // The main method int main() { int wall; int pricePaint; cout << "Enter square feet of wall: "; cin >> wall; cout << "Enter price of paint per gallon: "; cin >> pricePaint; getGallons(wall); getHours(gallons); // error here getCostpaint(gallons, pricePaint); getLaborcharges(hours); // error here getTotalcost(costPaint, laborCharges); //error here return 0; } 本课程的重点是使用函数和传递代码中的参数。我不应该使用全局变量。如果您有更好的方法,请分享。...

C 将 int 数组指针作为参数传递给函数

我想将 B int 数组指针传递给 func 函数,并能够从那里更改它,然后查看 main 函数中的更改 #include <stdio.h> int func(int *B[10]){ } int main(void){ int *B[10]; func(&B); return 0; } 上面的代码给了我一些错误: In function 'main':| warning: passing argument 1 of 'func' from incompatible pointer type [enabled by default]| note: expected 'int **' but argument is of type 'int * (*)[10]'| EDIT: new code: #include <stdio.h> int func(int *B){ *B[0] = 5; } int main(void){ int B[10] = {NULL}; printf("b[0] = %d\n\n", B[0]); func(B); printf("b[0] = %d\n\n", B[0]); return 0; } 现在我收到这些错误:...

c# Using Parameters.AddWithValue in SqlDataAdapter

如何将Parameters.AddWithValue 与SqlDataAdapter 一起使用。 var da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE '%"+txtSearch.Text+"%'", _mssqlCon.connection); var dt = new DataTable(); da.Fill(dt); 我像这样重写了代码: SqlDataAdapter da; da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE '%@search%'", _mssqlCon.connection); da.SelectCommand.Parameters.AddWithValue("@search",txtSearch.Text); var dt = new DataTable(); da.Fill(dt); 但它失败了。 答案 用于初始化的字符串SqlDataAdapter 成为CommandText的选择命令SqlDataAdapter 的属性。 您可以使用此代码向该命令添加参数 da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search", _mssqlCon.connection); da.SelectCommand.Parameters.AddWithValue("@search","%" + txtSearch.Text + "%"); 首先,删除参数占位符周围的单引号。 二、直接在AddWithValue的Value参数中添加通配符 您已要求使用AddWithValue,但请记住,虽然这是一个有用的快捷方式,但也有许多缺点,并且都有详细记录。...

C#“参数无效。”创建新的位图

如果我尝试创建大于19000 PX的位图,则会获得错误:参数无效。我该如何解决这个问题? System.Drawing.Bitmap myimage= new System.Drawing.Bitmap(20000, 20000); 答案 请记住,这是您尝试用该位图分配的很多记忆。 参考http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/37684999-62c7-4c41-8167-745a2b486583/ 。 阅读稍难,但此参考也有帮助: http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.drawing/2005-06/msg00176.html 系统中的每个图像都有此公式定义的内存量: bit-depth * width * height / 8 这意味着图像40800像素乘4050需要超过660兆字节的内存。 来自: stackoverflow.com

Cake PHP 重定向,url 中带有参数

我有一个要重定向到的页面,该页面需要 URL 中的参数:http://www.example.com/myController/myAction/param1:val1/param2:val2 我知道有一个 CakePHP 重定向函数,其工作原理如下: $this->redirect(array("controller" => "myController", "action" => "myAction", $data_can_be_passed_here), $status, $exit); 如何使用上述函数添加我想要的参数作为 url 的一部分? 我认为可能还有另一个元素可以添加到数组中,以便我可以传递param1:val1和param2:val2。 任何帮助将不胜感激! 答案 我不知道为什么我在 CakePHP 文档中找不到这个,但我终于找到了解决方案。 要重定向到 URL: http://www.example.com/myController/myAction/param1:val1/param2:val2 您可以使用: $this->redirect(array("controller" => "myController", "action" => "myAction", "param1" => "val1", "param2" => "val2", $data_can_be_passed_here), $status, $exit); 希望能帮助到你! 来自: stackoverflow.com

CAKEPHP:将另一个控制器的动作列为参数的最佳方法?

在控制器中,调用另一个控制器的操作并将数组作为参数传递的最合适方法是什么? 我知道您可以使用请求操作来调用其他控制器中的操作。但是,是否可以使用请求操作将数组作为参数传递? 不,我不想将操作放入应用程序控制器中。所以这对我来说不是解决方案。 我知道的唯一方式是加载其他控制器,如:http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Configuration.html 但是,是否有一种更简单的方法可以在将数组作为参数传递时调用其他控制器操作? 我是 cakePHP 的新手,所以任何建议都会受到赞赏。 答案 您是否适合将逻辑从第二控制器移动到其模型中,然后在第一个控制器的操作中执行类似的操作? $var = ClassRegistry::init('SecondModel')->myMethod($array); $this->set(compact('var')); 然后,在第一个控制器的操作的视图中,您可以使用该数据。 我总是尝试将控制器方法保留到可以通过浏览器击中的操作,在我的模型中放置尽可能多的逻辑,从控制器操作中调用外国模型方法,这些方法需要来自不是该控制器模型的模型的数据,然后使用该数据在我的观点中,如果是经常查看的数据,我为其创建一个元素。 来自: stackoverflow.com

const 引用和普通参数有什么区别?

void DoWork(int n); void DoWork(const int &n); 有什么不同? 答案 当您传递一个大的结构/类时,差异更加明显: struct MyData { int a,b,c,d,e,f,g,h; long array[1234]; }; void DoWork(MyData md); void DoWork(const MyData& md); 当您使用"正常"参数时,您可以按值传递参数,从而创建您传递的参数的副本。 在这两种情况下,无法从函数内部修改原始数据。 EDIT: 在某些情况下,原始数据可能会被修改,如所指出的查尔斯·贝利在他的回答。 来自: stackoverflow.com

C中是否有带参数约束的泛型构造函数

在C语言中 public class A { public static void Method<T> (T a) where T : new() { //...do something... } } 在您指定的地方T应该有一个不需要参数的构造函数。存在一个构造函数float[,]范围?" 以下代码无法编译: public class A { public static void Method<T> (T a) where T : new(float[,] u) { //...do something... } } 解决方法也有用吗? 答案 正如您所发现的,您不能这样做。 作为解决方法,我通常提供一个可以创建类型对象的委托T: public class A { public static void Method<T> (T a, Func<float[,], T> creator) { //...do something... } } 来自: stackoverflow.com