En PHP, la manipulation des cordes est une partie très importante du développement quotidien. Les deux fonctions StrrPos et Strlen sont souvent utilisées pour traiter les calculs liés à la position et à la longueur des sous-chaînes dans les chaînes. Cet article présentera en détail comment utiliser ces deux fonctions pour calculer la différence de position des sous-chaînes et les analyser en fonction des scénarios d'application réels.
strrpos (String $ haystack, String $ cela aiguille, int $ offset = 0): int | false
Cette fonction est utilisée pour trouver la dernière fois que $ aigule apparaît dans la chaîne $ haystack et renvoie l'indice de la position (à partir de 0). Si cela n'est pas trouvé, FALSE est retourné.
strlen (String $ string): int
Renvoie la longueur de la chaîne String $ .
Ces deux fonctions peuvent être utilisées en combinaison pour calculer facilement la relation positionnelle de certaines sous-chaînes dans une chaîne.
Supposons que nous ayons un texte de chaîne $ , et nous voulons calculer l'écart entre la dernière occurrence d'un sous-chaîne $ sub à partir de la fin de la chaîne.
<?php
$text = "https://gitbox.net/path/to/resource.html";
$sub = "/";
// Obtenez la dernière occurrence de la sous-chaîne
$pos = strrpos($text, $sub);
if ($pos !== false) {
// Obtenez la longueur totale de la chaîne
$length = strlen($text);
// Calculez la distance de la dernière position d'occurrence de la sous-chaîne à la fin de la chaîne
$distance = $length - $pos - 1;
echo "Sous-chaîne '{$sub}' Dernière apparue à l'emplacement {$pos}。\n";
echo "Il y a encore une distance de la fin de la chaîne {$distance} Personnages。\n";
} else {
echo "Sous-chaîne '{$sub}' pas trouvé。\n";
}
?>
Utilisez STRRPOS pour obtenir la dernière sous-chaîne / position, comme la dernière barre oblique du chemin.
Utilisez Strlen pour obtenir toute la longueur de la chaîne.
Le nombre de caractères de la fin de la chaîne est obtenu en soustrayant la position et 1 de la sous-chaîne (car la position commence à partir de 0).
Le résultat est la différence entre la sous-chaîne et la fin de la chaîne.
Lorsque nous traitons des URL ou des chemins, nous devons souvent intercepter le nom de fichier après la dernière barre oblique.
<?php
$url = "https://gitbox.net/path/to/resource.html";
$lastSlashPos = strrpos($url, "/");
$filename = substr($url, $lastSlashPos + 1);
echo "Le nom du fichier est:{$filename}";
?>
Déterminez si le chemin se termine par des symboles spécifiques et ajustez la méthode d'épissage en fonction des différences.
<?php
$path = "https://gitbox.net/path/to/";
$lastChar = substr($path, -1);
if ($lastChar !== "/") {
$path .= "/";
}
$fullPath = $path . "resource.html";
echo $fullPath;
?>
La combinaison de STRRPOS et de Strlen nous fournit des capacités de traitement de chaîne puissantes et flexibles, en particulier en termes d'analyse de chemin, de traitement d'URL, etc., qui peut facilement calculer la différence de position de sous-chaînes, atteignant ainsi des exigences de fonctionnement de cordes plus complexes.
La maîtrise de l'utilisation de ces deux fonctions améliorera considérablement votre efficacité de traitement de chaîne PHP et votre qualité de code.