php strrpos,PHP之mb_strrpos使用

本文详细介绍了PHP中的mb_strrpos函数,该函数用于查找字符串中指定字符最后出现的位置。通过示例展示了如何使用该函数,包括不同参数设置的影响,以及在多字节字符串处理中的应用。此外,还提供了几个实际场景的例子,如从URL中提取路径,从文件路径中获取文件名等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strrpos — Find position of last occurrence of a string in a string

mb_strrpos — 查找字符串在一个字符串中最后出现的位置

Description

int mb_strrpos (

string $haystack ,

string $needle [,

int $offset = 0 [,

string $encoding = mb_internal_encoding() ]]

)

//Performs a multibyte safe strrpos() operation based on the number of characters. needle position is counted from //the beginning of haystack. First character's position is 0. Second character position is 1.

//基于字符数执行一个多字节安全的 strrpos() 操作。 needle 的位置是从 haystack 的开始进行统计的。 第一个字符的位置是 0,第二个字符的位置是 1。

Parameters

haystack

The string being checked, for the last occurrence of needle

查找 needle 在这个 string 中最后出现的位置。

needle

The string to find in haystack.

在 haystack 中查找这个 string。

offset

May be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.

可以用于指定 string 里从任意字符数开始进行搜索。 负数的值将导致搜索会终止于指向 string 末尾的任意点。

encoding

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

encoding 参数为字符编码。如果省略,则使用内部字符编码。

Return Values

Returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

返回 string 的 haystack 中,needle 最后出现位置的数值。 如果没有找到 needle,它将返回 FALSE。

Example

/**

* Created by PhpStorm.

* User: zhangrongxiang

* Date: 2018/2/4

* Time: 下午11:02

*/

$test = "万物皆对象,everything is object";

echo strlen( $test ) . PHP_EOL; //38 = 6*3 = 20

echo mb_strlen( $test ) . PHP_EOL;//26 = 6 + 20

echo mb_strrpos( $test, '对象', 1 ) . PHP_EOL; // 3

echo mb_strrpos( $test, 'object', 2 ) . PHP_EOL; // 20

echo mb_strrpos( $test, '对象', - 1 ) . PHP_EOL; // 3

echo mb_strrpos( $test, '对象', - mb_strlen( $test ) + 10 ) . PHP_EOL; // 3

echo mb_strrpos( $test, 'object', - 1 ) . PHP_EOL; // 20

echo mb_strrpos( $test, 'object', - 7 ) . PHP_EOL; // false

echo mb_strrpos( $test, '万物皆对象' ) . PHP_EOL; // 0

//运算符优先级!! 赋值 < 比较

if ( ( $position = mb_strrpos( $test, "万物皆对象" ) ) !== false ) {

//万物皆对象

echo mb_substr( $test, $position, 5 ) . PHP_EOL;

}

$str = "https://github.com/zhangrxiang";

if ( ( $position = mb_strrpos( $str, "/" ) ) !== false ) {

//zhangrxiang

echo mb_substr( $str, $position + 1 ) . PHP_EOL;

}

$str = "/Users/zhangrongxiang/WorkSpace/phpProjects/PHPTEST/2018/02/04/mb_strrpos.php";

if ( ( $position = mb_strrpos( $str, "/" ) ) !== false ) {

//mb_strrpos.php

echo mb_substr( $str, $position + 1 ) . PHP_EOL;

}

文章参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值