PHP语言中mb_strpos的使用技巧
小标 2018-08-02 来源 : 阅读 1328 评论 0

摘要:本文主要向大家介绍了PHP语言中mb_strpos的使用技巧,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言中mb_strpos的使用技巧,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

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 — 查找字符串在另一个字符串中首次出现的位置

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.

· 

· 

要被检查的 string。

· 

needle

· 

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

· 

· 

在 haystack 中查找这个字符串。 和 strpos() 不同的是,数字的值不会被当做字符的顺序值。

· 

offset

· 

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

· 

· 

搜索位置的偏移。如果没有提供该参数,将会使用 0。负数的 offset 会从字符串尾部开始统计。

· 

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 first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

· 

· 

返回 string 的 haystack 中 needle 首次出现位置的数值。 如果没有找到 needle,它将返回 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频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程