[英]PHP/MySQL - how to combine variables from separate forms to build a query?
[英]PHP how to separate a query string into variables
我有一個Paypal表單,提交一個自定義隱藏輸入的值。 由於我還有一些額外的數據要解析,因此我將它們添加為查詢字符串。 即
<input type="hidden" name="custom" value="payment-type=deposit&user-id=<?php echo $user_id; ?>&user-name=<?php echo $user_name; ?>">
輸出為:
<input type="hidden" name="custom" value="payment-type=deposit&user-id=1&user-name=admin">
然后,我有一個名為paypal-ipn.php的文件,該文件與paypal進行通信,並將付款數據添加到我的數據庫中。 我使用$ _POST方法獲得每個輸入的值,即
$item_name = $_POST['item_name']; // wedding name
$booking_id = $_POST['item_number']; // booking id
$payment_status = $_POST['payment_status']; // payment status
$payment_amount = $_POST['mc_gross']; // amount?
$payment_currency = $_POST['mc_currency']; // currency
$txn_id = $_POST['txn_id']; // transaction id
$receiver_email = $_POST['receiver_email']; // reciever email i.e. your email
$payer_email = $_POST['payer_email']; // payer email i.e. client email
$custom_variables = $_POST['custom'];
最后一個(希望)返回我的查詢字符串。 我的問題是,如何將查詢字符串分成單獨的變量,即
$payment_type = PAYMENT TYPE FROM STRING
$user_id = USER ID FROM STRING
$user_name = USER NAME FROM STRING
有沒有辦法使用php來做到這一點?
這是我根據以下答案嘗試的最新代碼:
$custom_variables = $_POST['custom'];
parse_str($custom_variables);
echo $payment_type;
echo $user_id;
echo $user_name;
parse_str($str, $output);
$payment_type = $output['payment_type'];
$user_id = $output['user_id'];
$user_name = $output['user_name'];
使用解析字符串
將str解析為好像是通過URL傳遞的查詢字符串,並在當前作用域中設置變量。
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>
http://php.net/manual/zh/function.parse-str.php
更新
parse_str($custom_variables , $output);
$payment_type = $output['payment_type'];
$user_id = $output['user_id'];
$user_name = $output['user_name'];
echo $payment_type;
echo $user_id;
echo $user_name;
您可以執行以下操作:
$string = "payment-type=deposit&user-id=1&user-name=admin";
parse_str($string, $output);
echo $output['payment-type'];
echo $output['user-id'];
echo $output['user-name'];
//Output
deposit1admin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.