我正在使用API向我的服务器发送请求,其中包含一些POST值,包括以下内容:
'NumMedia' => '1'
NumMedia的值确定将接收多少附加参数。例如,如果NumMedia = 1,我将获得2个附加参数:
'MediaContentType0' => 'image/jpeg'
'MediaUrl0' => 'https://api.server.com/2010-04-01/Accounts/xxxxxxxx',
如果NumMedia大于1,我会得到一组额外的参数:
'MediaContentType0' => 'image/jpeg'
'MediaUrl0' => 'https://api.server.com/2010-04-01/Accounts/xxxxxxxx'
'MediaContentType1' => 'image/jpeg'
'MediaUrl1' => 'https://api.server.com/2010-04-01/Accounts/zzzzzzzz'
等等,其中第一个参数以0结尾,并且每增加一个返回的参数集,则递增1。
我想要做的是,根据NumMedia参数值指示的参数数量,循环遍历每个参数并将它们设置为变量,然后写出一些数据库记录。有点像:
if (isset($_POST['NumMedia']) && $_POST['NumMedia'] !== '') {
$totalParams = $_POST['NumMedia'];
$counter = 0;
// set a variable for the first set of parameters
$mediaContentType = $_POST['NumMediaXXX'] // XXX = $counter
$mediaURL = $_POST['MediaUrlXXX'] // XXX = $counter
// save these variables to database record
// increment counter to get next set of parameters
// exit when $counter = $totalParams
$counter ++;
}
我可以在概念上看到我需要做什么,只是不确定如何让循环进行并引用动态POST参数并在我达到预期参数的数量时退出循环?
答案 0 :(得分:0)
你必须通过循环获得价值。
if (isset($_POST['NumMedia']) && $_POST['NumMedia'] !== '') {
$totalParams = $_POST['NumMedia'];
for($i=0; $i<$totalParams; $i++)
{
// set a dynamic variables
${"mediaContentType" . $i} = $_POST['mediaContentType'.$i]; // XXX = $counter
${"mediaURL" . $i} = $_POST['MediaUrl'.$i]; // XXX = $counter
}
}
您必须在动态变量中设置值,并且可以按$mediaContentType0 , $mediaURL0, $mediaContentType1 , $mediaURL1
等方式访问该值....