indexOf and lastIndexOf 在 PHP 中?

2022-08-30 12:52:27

在 Java 中,我们可以使用 和 。既然这些函数在PHP中不存在,那么这个Java代码的PHP等效物是什么?indexOflastIndexOf

if(req_type.equals("RMT"))
    pt_password = message.substring(message.indexOf("-")+1);
else 
    pt_password = message.substring(message.indexOf("-")+1,message.lastIndexOf("-"));

答案 1

您需要以下函数才能在 PHP 中执行此操作:

strpos查找字符串中子字符串首次出现的位置

斯特尔波斯查找字符串中子字符串最后一次出现的位置

子字符串返回字符串的一部分

下面是函数的签名:substr

string substr ( string $string , int $start [, int $length ] )

函数 (Java) 的签名看起来有点不同:substring

string substring( int beginIndex, int endIndex )

substring(Java) 期望结束索引作为最后一个参数,但 (PHP) 期望长度。substr

PHP 中,通过 end-index 获得所需的长度并不难:

$sub = substr($str, $start, $end - $start);

这是工作代码

$start = strpos($message, '-') + 1;
if ($req_type === 'RMT') {
    $pt_password = substr($message, $start);
}
else {
    $end = strrpos($message, '-');
    $pt_password = substr($message, $start, $end - $start);
}

答案 2

在 php 中:

  • stripos() 函数用于查找字符串中不区分大小写的子字符串的第一次出现的位置。

  • strripos() 函数用于查找字符串中不区分大小写的子字符串的最后一次出现的位置。

示例代码:

$string = 'This is a string';
$substring ='i';
$firstIndex = stripos($string, $substring);
$lastIndex = strripos($string, $substring);

echo 'Fist index = ' . $firstIndex . ' ' . 'Last index = '. $lastIndex;

输出:拳头指数 = 2 上一个指数 = 13


推荐