>  기사  >  백엔드 개발  >  PHP는 문자열에서 n번째 문자 발생과 문자열 위치를 가져옵니다.

PHP는 문자열에서 n번째 문자 발생과 문자열 위치를 가져옵니다.

藏色散人
藏色散人앞으로
2019-12-04 13:25:444255검색

웹페이지의 소스코드를 가져온 후 문자열에 있는 텍스트의 일부를 가져와야 하는 경우가 종종 있는데 정규식을 어떻게 사용하는지 모르기 때문에 자주 쓰는 표현식으로는 원하는 내용을 얻을 수 없습니다. 그래서 나는 기본적으로 원하는 텍스트를 가져오는 기능을 직접 작성했습니다.

관련 권장 사항: "PHP 튜토리얼"

1. 구현 기능

/*
*取字符串中间文本
* @paramstring$str需要处理的字符串
* @paramstring $start_str 目标字符串‘前’的字符
* @paramstring $stop_str  目标字符串‘后’的字符
* @paramint $count     需要查找的次数
* @paramint $n   从第n个位置开始查找
* @returnarray$data返回查找满足条件要求的数组字符串
*/
function  get_msg($str,$start_str,$stop_str,$count,$n){
  $start=$n;  //从第n个位置开始查找
  $data=array();
  for($i=0;$i<$count;$i++){
$start=strpos($str,$start_str,$start);
$stop=strpos($str,$stop_str,$start);
$start=strlen($start_str)+$start;
$data[$i]= substr($str,$start,$stop-$start);
$start=$stop;
}
return $data;
  }

2. 🎜#

<?php
$stra = "你看这是一个字符串";
$strb = "你看这依然是个字符串,你看这依然是个字符串,你看这个依然就取不到";
$resultArra = get_msg($stra,"你看","符串",1,0); //从第0个位置开始查找,取目标  &#39;这是一个字&#39; ,并且查找1次
$resultArrb = get_msg($strb,"你看这","是个",3,0);//从第0个位置开始查找,取目标  &#39;依然&#39; ,并且查找3次
print_r($resultArra);
print_r($resultArrb);
function  get_msg($str, $start_str, $stop_str, $count, $n) {
  $start=$n;  //从第n个位置开始查找
  $data=array();
  for($i=0;$i<$count;$i++){
$start=strpos($str,$start_str,$start);
$stop=strpos($str,$stop_str,$start);
$start=strlen($start_str)+$start;
$data[$i]= substr($str,$start,$stop-$start);
$start=$stop;
}
return $data;
  }
?>

반환 결과

Array ( [0] => 这是一个字 ) 
Array ( [0] => 依然 [1] => 依然 [2] => )

두 번째 문자열 $strb에 3개의 'still' 문자가 있지만 그 중 2개만 함수에 전달된 조건을 충족하며 모두 검색됩니다. .조건에 맞는 2개.

물론 이것은 단순한 예일 뿐이며 더 복잡한 문자열을 사용할 수도 있습니다. 해당 조건을 전달하면 됩니다.

3. n번째 문자 또는 문자열 검색

필요에 따라 위 기능과 함께 사용할 수 있습니다

/*查找字符、字符串第n次出现的位置
*@param string $str    原始字符串
*@param string $find需要查找的字符、字符串
*@param int    $n第几次出现的字符、字符串
*@return int   $count返回第n次出现的位置
*/
function str_n_pos($str,$find,$n){
        for ($i=1;$i<=$n;$i++){
            $pos = strpos($str,$find);
            $str = substr($str,$pos+1);
            $pos_val=$pos+$pos_val+1;
        }
$count = $pos_val-1;
        return $count; 
    }

위 내용은 PHP는 문자열에서 n번째 문자 발생과 문자열 위치를 가져옵니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제