mb_strripos
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
mb_strripos — 大文字小文字を区別せず、 文字列の中で指定した文字列が最後に現れる位置を探す
説明
mb_strripos(
string
string
int
?string
): int|false
string
$haystack
,string
$needle
,int
$offset
= 0,?string
$encoding
= null
): int|false
mb_strripos() は、マルチバイト対応の
strripos() 操作を、文字数に基づいて行います。
needle
の位置を
haystack
の先頭から順に数えていきます。
最初の文字の位置は 0、二番目の文字の位置は 1 という具合です。
mb_strrpos() とは異なり、
mb_strripos() は大文字小文字を区別しません。
パラメータ
haystack
-
needle
が最後に現れる位置を見つける文字列。 needle
-
haystack
の中で探す文字列。 offset
-
haystack
の中で、検索を開始する位置。 encoding
-
使用する文字エンコーディング名。 省略した場合は内部文字エンコーディングが用いられます。
戻り値
needle
が haystack
の中で最後に現れる位置を返します。needle
が見つからない場合は false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
needle は、空の文字列も受け入れるようになりました。
|
8.0.0 |
encoding は、nullable になりました。
|
参考
- strripos() - 文字列中で、特定の(大文字小文字を区別しない)文字列が最後に現れた位置を探す
- strrpos() - 文字列中に、ある部分文字列が最後に現れる場所を探す
- mb_strrpos() - 文字列の中に指定した文字列が最後に現れる位置を見つける
+add a note
User Contributed Notes 2 notes
easai ¶
14 years ago
Here are Java like startsWith/endsWith implementations in PHP.
<?php
function startsWith($haystack,$needle)
{
$res=FALSE;
if(mb_strripos($haystack,$needle,0,"utf-8")==0)
$res= TRUE;
return $res;
}
function endsWith($haystack,$needle)
{
$res=FALSE;
$len=mb_strlen($haystack);
$pos=$len-mb_strlen($needle);
if(mb_strripos($haystack,$needle,0,"utf-8")==$pos)
$res= TRUE;
return $res;
}
?>
ivrokrambler at gmail dot com ¶
7 years ago
<?php
function backStrpos($str, $needle, $offset){
$needler = backStr($needle);
$strr = backStr($str);
$offsetr = strlen($str) - 1 - $offset;
$posr = mb_stripos($strr, $needler, $offsetr);
return strlen($str) - 1 - $posr - strlen($needle);
}
function backStr($str){
$str = str_replace(array('<', '>'), array('>', '<'), $str);
return strrev($str);
}
function backStrpos($str, $needle, $offset){
$needler = backStr($needle);
$strr = backStr($str);
$offsetr = strlen($str) - 1 - $offset;
$posr = mb_stripos($strr, $needler, $offsetr);
return strlen($str) - 1 - $posr - strlen($needle);
}
function backStr($str){
$str = str_replace(array('<', '>'), array('>', '<'), $str);
return strrev($str);
}
$test = '<table><TR>TEXT</TR><TR>TEST</TR></table>';
$pos = mb_stripos($test, 'TEST', 0);
var_dump($pos);
var_dump(backStrpos($test, '<tr', $pos));
var_dump(backStrpos($test, '<tr', backStrpos($test, '<tr', $pos)));
------->
int(24)
int(19)
int(6)