Comment couper une partie d'une chaîne et la sauvegarder dans une chaîne particulière dans MySQL avec PHP?
Exemple de chaîne: "REGISTER 11223344 here"
Comment puis-je supprimer "11223344"
de la chaîne d'exemple?
Si vous ciblez spécifiquement "11223344", utilisez str_replace
:
echo str_replace("11223344", "", "REGISTER 11223344 here");
Vous pouvez utiliser str_replace () , défini comme suit:
str_replace($search, $replace, $subject)
Donc, vous pouvez écrire le code comme:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
Si vous avez besoin d'une meilleure correspondance via des expressions rationnelles, 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";
Faire ce qui suit
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
Cela retournerait "REGISTERhere"
ou
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
Cela retournerait "INSCRIVEZ-VOUS"
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 chiffres, donc si vous avez besoin d'être plus spécifique, essayez:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
substr () est une fonction php intégrée qui renvoie une partie d'une chaîne . La fonction substr () prendra une chaîne en entrée, la forme d'index à l'endroit où vous souhaitez couper la chaîne. 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.
str_replace(find, replace, string, count)
Dynamiquement, si vous souhaitez supprimer une ou plusieurs parties d'un ou de plusieurs index fixes d'une chaîne, utilisez cette fonction:
/*
* Remove index/indexes from a string, delimited by a space (or something else).
* First, divides the string by delimiter and holds divided parts as an array.
* If $index is an array, it removes all indexes of the divided string;
* otherwise (i.e. has an int value), it removes just that index of the string.
* At last, it joins all string parts together and return it as a string.
* Note: If you want to use this function in PHP5, remove scalar type hints
* (i.e. keywords before function arguments).
* Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function remove_from_str(string $str, $index, string $delimiter = " "): string
{
// String parts
$strParts = explode($delimiter, $str);
// Remove indexes from string parts
if (is_array($index))
foreach ($index as $i)
$strParts[(int)$i] = null;
else
$strParts[(int)$index] = null;
// Remove null values, to prevent duplicating delimiter
$strParts = array_filter($strParts);
// Join all parts together and return it
return implode($delimiter, $strParts);
}
Pour votre but:
remove_from_str("REGISTER 11223344 here", 1);
// Output: REGISTER here
Un de ses usages est d’exécuter des chaînes de commande, dont vous connaissez la structure.