我有一个字符串
$line = "Name=johnGender=M";
如何创建一个名为$name
的字符串,其值将存储为john
。
如何提取字符串$ line中=
和G
之间的子字符串。
或者在第一次遇到=
时抓取一个包含4个字符的子字符串(这对我有用)。
如果$line=array("Name=john&Gender=M",Name=carl&Gender=M",);
并且我想将它们放入数组$name
那么$name=array("john", "carl");
答案 0 :(得分:2)
假设我们不知道名字的长度。说,
$line = "Name=SaifUrRehmanGender=M";
使用strpos()获取“性别”索引
strpos()函数在另一个字符串中查找第一次出现的字符串的位置。
对于您的情况:
$name = substr($line,5,strpos($line,"Gender")-5);
会做:)
输出:SaifUrRehman
答案 1 :(得分:0)
我想以下内容对您有用。
$name = array();
foreach($line as $elem)
array_push($name,substr(explode("=",$elem)[1],0,4));
因此,您可以$name[0],$name[1],...
最好尝试将输入语法设为
$line = array("Name=john&Gender=M","Name=raja&Gender=M");
parse_str($line);
因此,您可以使用内置函数parse_str()
。
现在$Name[0]
包含约翰,$Name[1]
包含 raja 。
答案 2 :(得分:0)
<?php
$line = "Name=johnGender=M";
//explode the string by '='
$info = explode('=', $line);
//then you have in $info[1] this string: johnGender
// and you get the first 4 characters in $name
$name = substr($info[1], 0, 4);
echo $name;
?>
输出:
约翰
<?php
$line = array("Name=john&Gender=M","Name=carl&Gender=M");
$array = array();
for($i = 0; $i < count($line); $i++) {
$info = explode('=', $line[$i]);
$name = explode('&', $info[1]);
$array[] = $name[0];
}
foreach($array as $name) {
echo $name . "<br>\n";
}
?>
输出:
约翰
卡尔
答案 3 :(得分:0)
试试这个:
function strinbetween($inputstring, $start, $end){
$inputstring = " ".$inputstring;
$ini = strpos($inputstring,$start);
if ($ini == 0) {
return "";
}
$ini += strlen($start);
$len = strpos($inputstring,$end,$ini) - $ini;
return substr($inputstring,$ini,$len);
}
调用上面的函数并传递字符串,从字符串开始并结束字符串
$line = "Name=johnGender=M";
$parsed = strinbetween($line,'=','G');
echo $parsed;
所以这里会返回john