数组和子字符串php

pepwfjgg  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(314)
//array data                          
   {
    $results[] = $result;

    $SiteID=$result["site_id"];
    $pay_sale_id=$result["pay_sale_id"];
    $pay_payment_info=$result["pay_payment_info"];
    $payNo= substring_index(substring_index('$result["pay_payment_info"]', '$USER=', -1), '~$TAGROLE', 1);

 }

pay\u payment\u info的内容如下


# $TAG=6F0000173~$USER=james~$TAGROLE=0

我只想提取用户信息,但出现错误:
致命错误:调用第行中未定义的函数substring\u index()

xzlaal3s

xzlaal3s1#

看来问题是你没有 substring_index() 函数或方法,但您尝试调用它两次。
我不知道你为什么用这个 ~ 作为分隔符,但这应该是可以的,尽管使用 , 会减少工作量;查询字符串的每个属性都可以直接寻址。
你要做的是使用 php 的版本 split() 哪个是 explode() 这是手册的链接。
您要做的是拆分inc字符串:

$aUserInfo = explode('~', $result['pay_payment_info']);

现在你有了一个数组。循环浏览并使其符合您的要求:

$result = array();
foreach($aUserInfo as $v){
  $aTmp = explode('=',$v);
  $result[$aTmp[0]] = $aTmp[1];
}

最后是一个数组,其中键作为键,它们各自的值作为值,即。

$result = array( 'tag' => '6F0000173',
                 'user'=> 'James',
                 'tagrole'=> 0    );
kninwzqo

kninwzqo2#

考虑到用户信息总是以 ~$USER= 以一个 ~ 我们可以使用简单的正则表达式得到结果:

preg_match('/\~\$USER=(?<user>[^~]+)/', $pay_payment_info, $match);
var_dump($match['user']);
nx7onnlm

nx7onnlm3#

错误会确切地告诉您它是错误的原因: substring_index 不是有效的/本机php函数。。。你可以定义你自己的 substring_index 不过。
但是,给定字符串:
$tag=6f000173~$user=james~$tagrole=0
要获得$user=james部分,可以使用 explode 如下--

$payNo = explode("~", $result["pay_payment_info"])

现在,你有了 $USER 信息输入 $payNo[1] 如果你想走得更远,得到什么的价值 $USER 值为,则可以使用php的本机 substr 功能:

$justUserPart = substr($payNo[1], strpos($payNo[1], "=")+1);
echo $justUserPart;

请注意:以上假设字符串的格式始终为
$tag=…~$user=…~$tagrole=。。。

qlzsbp2j

qlzsbp2j4#

正如之前的评论所说,没有类似的功能 substring_index 核心php
这个问题可能与下面的php-get-string-between-tags主题重复
下面是使用 strpos http://php.net/manual/pl/function.strpos.php
以及 substr http://php.net/manual/pl/function.substr.php

$var = '$TAG=6F0000173~$USER=james~$TAGROLE=0';
$m = substr($var, strpos($var, '~$USER=')+7);
var_dump($m); //returns string(16) "james~$TAGROLE=0"
$m = substr($m, 0, strpos($m, '~$'));
var_dump($m); //returns string(5) "james"

相关问题