Home >Backend Development >PHP Tutorial >Detailed explanation of the steps to use mb_strpos in PHP

Detailed explanation of the steps to use mb_strpos in PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-19 10:41:172957browse

This time I will bring you a detailed explanation of the steps to use mb_strpos in PHP. What are the precautions when using mb_strpos in PHP? Here are practical cases, let’s take a look.

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)
mb_strpos — Find position of first occurrence of string in a string
mb_strpos — Finds the first occurrence of string in another string

Description

int mb_strpos ( 
  string $haystack , 
  string $needle [, 
  int $offset = 0 [, 
  string $encoding = mb_internal_encoding() ]] 
  )
//Finds position of the first occurrence of a string in a string.
// 查找 string 在一个 string 中首次出现的位置。
//Performs a multi-byte safe strpos() operation based on number of characters. The first character's position is 0, the second character position is 1, and so on.
// 基于字符数执行一个多字节安全的 strpos() 操作。 第一个字符的位置是 0,第二个字符的位置是 1,以此类推。

Parameters

haystack

  • The string being checked.

  • The string being checked.

needle

  • The string to find in haystack. In contrast with strpos(), numeric values ​​are not applied as the ordinal value of a character.

  • Look for this string in haystack. Unlike strpos(), numeric values ​​are not treated as character sequential values.

offset

  • The search offset. If it is not specified, 0 is used. A negative offset counts from the end of the string.

  • The offset of the search position. If this parameter is not provided, 0 will be used. Negative offsets will be counted from the end of the string.

encoding

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

  • encoding parameter is character encoding. If omitted, the internal character encoding is used.

Return Values

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

  • Returns the value of the first occurrence of needle in the haystack of string. If needle is not found, it returns FALSE.

Example

<?php
/** * Created by PhpStorm.
 * User: zhangrongxiang
 * Date: 2018/2/2
 * Time: 下午11:16
 */
$str = "Hello World! Hello PHP";
$pos = mb_strpos( $str, "Hello", 0, mb_internal_encoding() );
echo $pos . PHP_EOL;//0
$pos = mb_strpos( $str, "Hello", 2, mb_internal_encoding() );
echo $pos . PHP_EOL;//13
function mb_str_replace( $haystack, $search, $replace, $offset = 0, $encoding = 'auto' ) {
  $len_sch = mb_strlen( $search, $encoding );
  $len_rep = mb_strlen( $replace, $encoding );
  
  while ( ( $offset = mb_strpos( $haystack, $search, $offset, $encoding ) ) !== false ) {
    $haystack = mb_substr( $haystack, 0, $offset, $encoding )
          . $replace
          . mb_substr( $haystack, $offset   $len_sch,
        $le = mb_strlen( $haystack ) - mb_strlen( $search )   mb_strlen( $replace ),
        $encoding );
    //echo $le.PHP_EOL;
    $offset = $offset   $len_rep;
    if ( $offset > mb_strlen( $haystack, $encoding ) ) {
      break;
    }
  }
  
  return $haystack;
}
$replace = mb_str_replace( "hello world !hello world !hello world !hello world !", "hello", "hi" );
echo $replace . PHP_EOL; //hi world !hi world !hi world !hi world !
//hi PHP !hi PHP !hi PHP !hi PHP !
echo mb_str_replace( $replace, "world", "PHP" ) . PHP_EOL;
echo mb_str_replace( $replace, " ", "-" ) . PHP_EOL;
//PHP是世界上最好的语言

The above is the detailed content of Detailed explanation of the steps to use mb_strpos in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn