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

藏色散人
Freigeben: 2023-04-07 22:06:01
nach vorne
4247 Leute haben es durchsucht

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;
  }
Nach dem Login kopieren

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;
  }
?>
Nach dem Login kopieren

Ergebnisse zurückgeben

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

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; 
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!