我正在尝试将以下表单的GET函数作为预定义变量的一部分。
有什么想法吗?提前谢谢!
让我再解释一下我真正想要做的事情。我目前经营着一个专注于美国股市的网站。我用method = GET创建了一个HTML表单。此表单用作搜索框以查找股票代码符号。使用GET方法,它将股票代码放置在URL的末尾,我创建了一个quotes.php页面,该页面捕获此信息并根据键入框中的股票代码显示股票图表。对于公司名称,我创建了一个名为company.php的页面,该页面声明了公司名称的所有变量(恰好是$后跟股票代码)。文件company.php是quotes.php中包含的唯一文件。
这就是它的来源:'。 $$ _ GET [“symbol”]。 “
上面的代码根据输入到表单中的内容将GET更改为变量。如果有人在框中输入与company.php页面中的变量不匹配的内容,我使用“die”来显示错误消息。
我还在每家公司的company.php页面变量中添加了一些变量,这些变量将显示每个股票在哪个证券交易所上市。这些变量以“$ ex_”开头。所以,我试图做的是将符号键入“$ ex_”附加的框中,以便显示相应的证券交易所。
我的问题是:
谢谢大家!
答案 0 :(得分:5)
不要为变量加前缀并使用变量(可能不安全,尤其是用户输入),请尝试以下方法:
$ex = array(
"foo" => "bar",
...
);
if( !isset($ex[$_GET['symbol']])) die("Error: That symbol doesn't exist!");
$chosen = $ex[$_GET['symbol']];
答案 1 :(得分:0)
这是另一种方法:
extract($_GET, EXTR_PREFIX_ALL, "ex");
虽然最好像这样使用它,以确保没有安全问题。
extract($_GET, EXTR_SKIP);
答案 2 :(得分:0)
PHP's extract()完全符合您的要求,您应该将“ex_”指定为您想要的前缀。
然而,盲目使用此类功能存在安全问题和意外后果,因此请阅读功能参数后面的其他段落。
答案 3 :(得分:-1)
以下是否能满足您的需求?
$myGetVariable = $_GET['symbol'];
$ex_{$myGetVariable} = "Something";
答案 4 :(得分:-1)
$_GET['symbol'] = 'APPL';
if (!empty($_GET)) {
foreach ($_GET as $k => $v) {
$var = 'ex_'.$k ;
$$var=$v;
}
}
var_dump($ex_symbol);
APPL