0

URL からいくつかの値を抽出し、これらの値を使用してメールを送信する必要があります。

ここにいる他の人たちの助けのおかげで、私はほとんどそれを釘付けにしました. 私が抱えている問題は、URLの追加がこのように見えることです

?SessionID=582506&Note=joe@bloggs.com;joe bloggs;111.111.111.111&Status=203&Operator= 

お気づきかもしれませんが、電子メール アドレス、名前、金額、および IP アドレスはすべて、セミコロンで区切られて note 変数に格納されます。

メモの値を解析し、そこからデータ (セミコロンで制限されている) を抽出して、電子メールの編集に使用できる個別の数量として抽出する方法はありますか?

前もって感謝します

4

7 に答える 7

5

パラメータからデータを取得しNote、値をセミコロンで分割すると (例: explode)、結果の配列の値の各部分に到達できます。

$note = $_GET["Note"];
$note_parts = explode(";", $note);

$email = $note_parts[0];
$name = $note_parts[1];
$addr = $note_parts[2];
于 2012-04-14T21:10:22.250 に答える
1

$_GET スーパーグローバルを使用して、URL から値を取得します。

$sessid = $_GET["SessionID"]; # Although this seems pointless
                              # when you can use session_id()
$note = $_GET["Note"];
$status = $_GET["Status"];
$operator = $_GET["Operator"];

さらに良い方法は、PHP で事前に作成された関数を使用して URL を解析することです。

$url = "http://mysite.com/index.php?"
       ."SessionID=582506&Note=joe@bloggs.com;"
       ."joe bloggs;111.111.111.111&Status=203&Operator=";
$arrayOfURL = parse_url($url); # Returns an associative array of all URL components
print_r($arrayOfURL);

あなたのための参照シート: http://php.net/manual/en/function.parse-url.php

文字列を区切り文字で区切られた部分に分割するには、explode($delimiter, $stringToExplode) 関数を使用します。このチュートリアル: http://www.tizag.com/phpT/php-string-explode.php

于 2012-04-14T21:12:16.370 に答える
1
$notes = explode(';', $_GET['Note']);
var_dump($notes);

私が見る 1 つの問題は、文字列に金額があると主張しているが、例の URL に金額がないことです。Note の個々のコンポーネント ($notes[0]、$notes[1] など) を位置的に取得する必要があります。または、これらのアイテムが Note= 内のさまざまな位置にある可能性がある場合は、より複雑なものをロールバックする必要があります。パラメータ。

于 2012-04-14T21:15:10.480 に答える
1

私があなたの質問を正しく理解していれば

$note = $_GET['note'];
$arr = explode(";", $note);

そして $arr には、すべての属性があります

于 2012-04-14T21:15:31.967 に答える
0
$note  = $_GET["Note"];
$notes = explode(";", $note);

echo $notes[0]; // joe@bloggs.com
echo $notes[1]; // joe bloggs
echo $notes[2]; // 111.111.111.111
于 2012-04-14T21:16:08.253 に答える
0

これを試して :

<?php
        function parseQueryString($str) 
        { 
            $op = array(); 
            $pairs = explode("&", $str); 
            foreach ($pairs as $pair) 
            { 
                list($k, $v) = array_map("urldecode", explode("=", $pair)); 
                $op[$k] = $v; 
            } 
            return $op; 
        }

        $str = "SessionID=582506&Note=joe@bloggs.com;joe bloggs;111.111.111.111&Status=203";

        $p = parse_url($str);
        $s = parseQueryString($p['path']);

        print_r($s);
?>

出力:

Array
(
    [SessionID] => 582506
    [Note] => joe@bloggs.com;joe bloggs;111.111.111.111
    [Status] => 203
)

Note変数については:

<?php
     $notes = explode(";", $s['Note']);

     $email = $notes[0];
     $name = $notes[1];
     $ipaddress = $notes[2];
?>
于 2012-04-14T21:17:18.660 に答える
0

分解とリストを使用できます。グローバル向け$_GET['Note'];

<?php

list($mail,$name,$ip) = explode(';',$_GET['Note']);

URL を直接解析したい場合は、 parse_str が役立ちます。

<?php
    parse_str("SessionID=582506&Note=joe@bloggs.com;joe bloggs;111.111.111.111&Status=203&Operator=",$array);
    var_dump($array);
/*
array(4) {
  ["SessionID"]=>
  string(6) "582506"
  ["Note"]=>
  string(41) "joe@bloggs.com;joe bloggs;111.111.111.111"
  ["Status"]=>
  string(3) "203"
  ["Operator"]=>
  string(0) ""
}*/
于 2012-04-14T21:11:38.540 に答える