JinputでURLから2つの値を抽出しようとしています。
私のURLは:
http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&[email protected]&subscribers_name=test&encoding=UTF-8
次のコードを使用しています。
$jinput = JFactory::getApplication()->input;
$name = $jinput->get('subscribers_name','none','raw');
$email = $jinput->get('subscribers_email','none','raw');
echo $name;
echo $email;
問題は、最後の値しか取得できないことです。言い換えれば、私は得ています:
$name = 'test';
$email = 'none'; // (should be [email protected])
私が何を間違っているのか、どのように修正するべきですか?
あなたの問題は2番目の疑問符だと思います、リンクは
http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&id=45&[email protected]&subscribers_name=test&encoding=UTF-8
不正な形式のURLクエリ文字列が原因です。具体的には、2番目の?
は&
である必要があります。
デモ :
$url = 'http://localhost/kitchen-guide-new/index.php?option=com_content&view=article&[email protected]&subscribers_name=test&encoding=UTF-8';
parse_str(parse_url($url, PHP_URL_QUERY), $array);
var_export($array);
出力:
array (
'option' => 'com_content',
'view' => 'article',
'id' => '[email protected]',
'subscribers_name' => 'test',
'encoding' => 'UTF-8',
)
ご覧のとおり、クエリ文字列の解析は、最初に発生する?
に依存して、データの開始を指示します。キーと値のペアは=
でバインドされ、&
によって他のペアと分離されます。
入力ミスの結果、subscribers_email
キーと値がid
値に追加されます。