PHP - 从字符串中获取子字符串

时间:2015-06-06 18:03:56

标签: php arrays string substring

我有一个字符串

$line = "Name=johnGender=M";

如何创建一个名为$name的字符串,其值将存储为john。 如何提取字符串$ line中=G之间的子字符串。

或者在第一次遇到=时抓取一个包含4个字符的子字符串(这对我有用)。

如果$line=array("Name=john&Gender=M",Name=carl&Gender=M",);并且我想将它们放入数组$name那么$name=array("john", "carl");

4 个答案:

答案 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

相关问题