我有以下代码,它给出了我最初需要的内容(字符串=
中第一个$data
之后的大写单词:
if (($pos = strpos($data, "=")) !== FALSE) {
$whatIWant = ucwords(substr($data, $pos+1));
}
我现在需要做的是完全相同的事情,但在同一个字符串(&
)中忽略(包括)第一个$data
后的任何内容。
我的PHP很弱,有人可以告诉我如何更新上面这样做吗?我还没有找到答案,但如果我错过了,请告诉我。
示例字符串:
目的地=公寓+铁力士+度假村+ Wohnung + 721&安培; hotelid = 0123454656
目的地=出租公寓+ + +门迪的Eder + - +圣让&安培; hotelid = 01234
目的地=三卧室+假日+首页+ +在&Olofstrom的放大器; hotelid = 98
答案 0 :(得分:4)
如果此查询字符串来自用于访问该网页的网址(正如您使用$_SERVER['QUERY_STRING']
的评论所示),那么只需使用$_GET
Superglobal :
echo ucwords($_GET['destination']);
如果查询字符串来自其他地方,那么有一个工具,parse_str:
parse_str($data, $result);
您的第一个示例查询字符串产生:
Array
(
[destination] => Apartment TITLIS Resort Wohnung 721
[hotelid] => 0123454656
)
那么就是:
echo ucwords($result['destination']);
答案 1 :(得分:2)
您的解决方案:您可以在此处查看:https://3v4l.org/ohgvE
<?php
$data = "destination=Apartment+TITLIS+Resort+Wohnung+721&hotelid=0123454656";
if (($pos = strpos($data, "=")) !== FALSE) {
$whatIWant = ucwords(substr($data, $pos+1));
$whatIWant = explode("&", $whatIWant); // creating array from string
$whatIWant = $whatIWant[0]; // before & is first array element
echo "Ans1: \n";
echo $whatIWant;
// Output: Apartment+TITLIS+Resort+Wohnung+721
// if you want your output with & just add &
echo "\n\nAns2: \n";
$whatIWant = $whatIWant."&";
echo $whatIWant;
// now Output iss:
// Apartment+TITLIS+Resort+Wohnung+721&
}
?>
答案 2 :(得分:1)
使用$_GET
超全局是在PHP中获取GET
参数的正确方法。
$_GET['destination']
将包含您的destination
,并且已经对其进行了网址解码。
GET变量通过urldecode()传递。