Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ermittelt das n-te Vorkommen eines Zeichens in einem String und die Position des Strings

PHP ermittelt das n-te Vorkommen eines Zeichens in einem String und die Position des Strings

藏色散人
藏色散人nach vorne
2019-12-04 13:25:444202Durchsuche

Weil ich nach dem Abrufen des Quellcodes der Webseite oft einen Teil des Textes in der Zeichenfolge abrufen muss, aber nicht weiß, wie man reguläre Ausdrücke verwendet. Die Ausdrücke, die ich schreibe, können daher oft nicht den gewünschten Inhalt erhalten Ich habe selbst eine Funktion geschrieben, die grundsätzlich zum gewünschten Text gelangen kann.

Verwandte Empfehlungen: „PHP-Tutorial

1. Implementierungsfunktion

/*
*取字符串中间文本
* @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;
  }

Implementierungsbeispiel

<?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;
  }
?>

Ergebnisse zurückgeben

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

Obwohl die zweite Zeichenfolge $strb drei „Yi“-Zeichen enthält, erfüllen nur zwei davon die an die Funktion übergebenen Bedingungen, sodass nur zwei gefunden werden, die die Bedingungen erfüllen.

Natürlich ist dies nur ein einfaches Beispiel, es können auch komplexere Strings verwendet werden, einfach die entsprechenden Bedingungen übergeben.

3. Finden Sie das n-te Vorkommen eines Zeichens oder einer Zeichenfolge

Dies kann je nach Anforderungen in Verbindung mit der oben genannten Funktion verwendet werden

/*查找字符、字符串第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; 
    }

Das obige ist der detaillierte Inhalt vonPHP ermittelt das n-te Vorkommen eines Zeichens in einem String und die Position des Strings. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen