Maison > développement back-end > tutoriel php > PHP récupère la nième occurrence d'un caractère dans une chaîne et la position de la chaîne

PHP récupère la nième occurrence d'un caractère dans une chaîne et la position de la chaîne

藏色散人
Libérer: 2023-04-07 22:06:01
avant
4319 Les gens l'ont consulté

Parce que j'ai souvent besoin d'obtenir une partie du texte dans la chaîne après avoir récupéré le code source de la page Web, mais je ne sais pas comment utiliser les expressions régulières. Les expressions que j'écris ne peuvent souvent pas obtenir le contenu souhaité, donc. J'ai écrit moi-même une fonction qui permet d'accéder au texte souhaité.

Recommandations associées : "Tutoriel PHP"

1. Fonction d'implémentation

/*
*取字符串中间文本
* @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;
  }
Copier après la connexion

2. Exemple d'implémentation

<?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;
  }
?>
Copier après la connexion

Renvoyer les résultats<. 🎜>

Array ( [0] => 这是一个字 ) 
Array ( [0] => 依然 [1] => 依然 [2] => )
Copier après la connexion

Bien qu'il y ait trois caractères 'Yi' dans la deuxième chaîne $strb, seuls deux d'entre eux remplissent les conditions transmises dans la fonction, donc seuls deux qui remplissent les conditions seront trouvés.

Bien sûr, ce n'est qu'un exemple simple, des chaînes plus complexes peuvent également être utilisées, il suffit de passer les conditions correspondantes.

3. Rechercher la nième occurrence d'un caractère ou d'une chaîne

Ceci peut être utilisé en conjonction avec la fonction ci-dessus, selon les exigences

/*查找字符、字符串第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; 
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal