两个特定字符之间的PHP子字符串
我有下面的代码,它正好提供了我首先需要的内容(字符串两个特定字符之间的PHP子字符串,php,Php,我有下面的代码,它正好提供了我首先需要的内容(字符串$data中第一个=后面的大写单词): if (($pos = strpos($data, "=")) !== FALSE) { $whatIWant = ucwords(substr($data, $pos+1)); } 我现在需要做的是完全相同的事情,但是忽略(包括)同一字符串($data)中第一个&之后的任何内容 我的PHP是薄弱的,请有人告诉我如何更新上述做到这一点?我还没有找到答案,但如果我错过了,请
$data
中第一个=
后面的大写单词):
if (($pos = strpos($data, "=")) !== FALSE) {
$whatIWant = ucwords(substr($data, $pos+1));
}
我现在需要做的是完全相同的事情,但是忽略(包括)同一字符串($data
)中第一个&
之后的任何内容
我的PHP是薄弱的,请有人告诉我如何更新上述做到这一点?我还没有找到答案,但如果我错过了,请告诉我
示例字符串:
目的地=公寓+铁力斯+度假村+沃农+721和hotelid=0123454656
目的地=租赁+公寓+门迪+埃德尔+-+圣约翰酒店=01234
目的地=三居室+度假+住宅+室内+奥洛夫斯特罗姆&酒店ID=98
如果此查询字符串来自用于访问页面的URL(从您的评论中可以看出您正在使用
$\u服务器['query\u字符串]]
),则只需使用$\u GET
:
如果查询字符串来自其他地方,则有一个工具:
第一个示例查询字符串生成:
Array
(
[destination] => Apartment TITLIS Resort Wohnung 721
[hotelid] => 0123454656
)
那么就:
echo ucwords($result['destination']);
使用superglobal是在PHP中获取get
参数的正确方法
$_GET['destination']
将有您的目的地
,并且该目的地已被url解码
GET变量通过urldecode()传递
您的解决方案在此处:您可以在此处查看:
首先发布您的$data
我已根据要求添加了一些示例-thanks@chris85它们是URL,我正在使用urldecode($\u SERVER['QUERY\u STRING'])获取它们。我不知道爆炸的原因,但我会给出一个例子look@chris85这是我做过的唯一一个PHP,我没有理由不使用$\u GET['destination']除了不知道之外:)如果这样做可以,那么它看起来很简单谢谢你-这也可以使用大写的功能,还是我只是在$result['destination']周围添加ucwords?它不会改变大小写,如果你需要标题大小写,那么是的,ucwords
。谢谢你还有一个问题,我如何用URL替换字符串值($data)是我目前从urldecode获得的吗?@nathanhayfield:是的,但这将解析URL并提供OP已经拥有的查询字符串。然后仍然需要parse_str
。
echo ucwords($result['destination']);
$_GET['destination']
<?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&
}
?>