Comment puis-je supprimer une partie d'une chaîne?
Exemple de chaîne: "REGISTER 11223344 here"
Comment puis-je supprimer "11223344"de l'exemple de chaîne ci-dessus?
REGISTER heredans la base de données?
Comment puis-je supprimer une partie d'une chaîne?
Exemple de chaîne: "REGISTER 11223344 here"
Comment puis-je supprimer "11223344"de l'exemple de chaîne ci-dessus?
REGISTER heredans la base de données?
Réponses:
Si vous ciblez spécifiquement "11223344", utilisez str_replace:
// str_replace($search, $replace, $subject)
echo str_replace("11223344", "","REGISTER 11223344 here");
Vous pouvez utiliser str_replace () , qui est défini comme:
str_replace($search, $replace, $subject)
Vous pouvez donc écrire le code comme suit:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
Si vous avez besoin d'une meilleure correspondance via des expressions régulières, vous pouvez utiliser preg_replace () .
en supposant que 11223344 n'est pas constant
$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
str_replace(find, replace, string, count)
Comme par exemple OP:
$Example_string = "REGISTER 11223344 here";
$Example_string_PART_REMOVED = str_replace('11223344', '', $Example_string);
// will leave you with "REGISTER here"
// finally - clean up potential double spaces, beginning spaces or end spaces that may have resulted from removing the unwanted string
$Example_string_COMPLETED = trim(str_replace(' ', ' ', $Example_string_PART_REMOVED));
// trim() will remove any potential leading and trailing spaces - the additional 'str_replace()' will remove any potential double spaces
// will leave you with "REGISTER here"
Lorsque vous avez besoin d'une correspondance basée sur des règles, vous devez utiliser regex
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
Cela correspondra au premier ensemble de nombres, donc si vous avez besoin d'être plus précis, essayez:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
$matchtableau. Retirez les parenthèses puis accédez via $match[0].
substr () est une fonction php intégrée qui renvoie une partie d'une chaîne. La fonction substr () prendra une chaîne comme entrée, la forme d'index où vous voulez que la chaîne soit coupée. et un paramètre facultatif est la longueur de la sous-chaîne. Vous pouvez voir la documentation appropriée et un exemple de code sur http://php.net/manual/en/function.substr.php
REMARQUE: l'index d'une chaîne commence par 0.
Dynamiquement, si vous souhaitez supprimer (une) partie (s) d'un (des) index (s) fixe (s) d'une chaîne, utilisez cette fonction:
/**
* Removes index/indexes from a string, using a delimiter.
*
* @param string $string
* @param int|int[] $index An index, or a list of indexes to be removed from string.
* @param string $delimiter
* @return string
* @todo Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function removeFromString(string $string, $index, string $delimiter = " "): string
{
$stringParts = explode($delimiter, $string);
// Remove indexes from string parts
if (is_array($index)) {
foreach ($index as $i) {
unset($stringParts[(int)($i)]);
}
} else {
unset($stringParts[(int)($index)]);
}
// Join all parts together and return it
return implode($delimiter, $stringParts);
}
Pour votre objectif:
remove_from_str("REGISTER 11223344 here", 1); // Output: REGISTER here
L'une de ses utilisations est d'exécuter des chaînes de type commande, dont vous connaissez leurs structures.
L'extrait suivant imprimera «INSCRIVEZ-VOUS ici»
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
L'API preg_replace () nous utilise comme indiqué ci-dessous.
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
preg_replace()dans ce cas. Il n'y a aucun avantage non plus à utiliser un groupe de capture.
Faites ce qui suit
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
Cela renverrait "INSCRIPTION ici"
ou
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
Cela renverrait "INSCRIVEZ-VOUS ici"
remove, mais il semble probable que vous vouliezextractque la chaîne ciblée puisse être stockée dans la base de données.