Détection d'un numéro dans une chaine de caractère

Ce topic a été résolu
guewen

guewen Le 26 juillet 2016 à 11:57 (Édité le 25 janvier 2019 à 17:52)

Bonjour à tous.
Je cherche depuis longtemps un système permettant de trouver une numéro dans une chaîne de caractère. 
Suite à la sortie du dernier tuto, je me suis dit que c'était l'occasion de poser la question (n'arrivant pas à faire fonctionner son code..)

Merci à tous si vous avez des propositions
Dwardower

Dwardower Le 27 juillet 2016 à 12:23

un numéro ???
Blast0Kd

Blast0Kd Le 27 juillet 2016 à 18:23

oui @Dwardower : 1 2 3 4 5 6 7 8 9.......
Mais il a raison @guewen explique ce que tu veux parce que tu nous dis rien la
guewen

guewen Le 27 juillet 2016 à 18:30

Bonjour à tous,

Je vais vous faire un exemple pour mieux comprendre mon attente : 

Appelez moi au 0658585858 svp !

J'aimerai un code permettant de détecter un numéro de téléphone dans une dédicace par exemple et de mettre ce numéro de téléphone en rouge.

Sinon, on affiche tout simplement la dédicaces telle qu'est est.

@Dwardower @Blast0Kd
Blast0Kd

Blast0Kd Le 27 juillet 2016 à 19:26

un numéro de téléphone comporte 10 caractères, donc tu fait ça avec strlen de php, puis tu vérifie si il n'y que des nombre grâce à une fonction php que je te laisserai trouver : si tu trouve pas clique ici
guewen

guewen Le 27 juillet 2016 à 19:42

Ouai je suis daccord mais c'est facile de faire le strlen MAIS, je veux détecter sa dans un message.. Et c'est sa que je ne sais pas faire [url=http://www.primfx.com/profil/blast0kd/]
Blast0Kd
[/url]
Blast0Kd

Blast0Kd Le 27 juillet 2016 à 19:45

dans un sms ? @guewen
guewen

guewen Le 27 juillet 2016 à 19:54

Blast0Kd

Non, je travail dans un endroit où on reçoit des dédicaces. 
Et il me faudrait un système pour détecter un numéro de téléphone dans une dédi :

Super cool votre radio ! Appel moi au 0658585858! 

Genre un signe distinctif sur le numéro 😉 (ps : j'ai une idée derrière la tête 😉) Sinon, sa ne sert à rien
Blast0Kd

Blast0Kd Le 27 juillet 2016 à 20:17

ben fait ce que je t'ai dit ça fonctionne parfaitement ne t'attend pas à ce que l'on fasse le code pour toi
Apprend seul et tu y arriveras
guewen

guewen Le 27 juillet 2016 à 20:19

Je ne viens pas pour sa ici mdrr.. Si j'avais voulu, il y a openclass... Euh, ils te donnent le code ! Moi ici, je voulais savoir comment faire 😉 Je vais regarder alors
guewen

guewen Le 27 juillet 2016 à 20:41

En fait non, je ne serai pas faire... Car moi, c'est pas seulement un numéro que j'ai.. Il y a aussi des lettres, des mots...
guewen

guewen Le 28 juillet 2016 à 19:19

Blast0Kd

Bon bin j'ai essayé (sa fait presque une heure que j'y suis...)
J'aimerai vraiment avoir un peu d'aide stp... 
Genre juste dit moi comment faire (sans me dire le code) mais je ne comprend pas..
Blast0Kd

Blast0Kd Le 29 juillet 2016 à 16:23

@guewen tu cherche une chaîne de caractère (string) dont tu connais déjà le combre : 
$mv = $_POST['ta_variable'];
$nb = ''; //ton nombre de caractère
if($mv == $nb)
et après la suite tu sais faire parce que la je t'ai tout donné
guewen

guewen Le 29 juillet 2016 à 19:23

Ah ok ^^ Je regarde si j'arrive à finir 😉
guewen

guewen Le 29 juillet 2016 à 19:26

<?php
$mv = 'Appelle moi stp ! 0558585858';
$nb = '10'; //ton nombre de caractère
if($mv == $nb)
{
   echo "Ok";
}
else
{
   echo "non";
}
?>
C'est bien ce que je me disais.. Que vous n'aviez pas compris.. Sa, je sais faire ce que tu m'as dis. Moi, je veux détecter le numéro dans le texte 😉
guewen

guewen Le 29 juillet 2016 à 19:28

De plus, dans le code, tu demandes si mv est égal à nb donc pour que sa soit bon, il faudrait que mv soit égal à 10
TheFlameflo

TheFlameflo Le 29 juillet 2016 à 22:41

Salut !

Si je comprend bien ce que tu veux, tu cherches à détecter un numéro ?
Donc, je crois que preg_match est parfait pour ce que tu recherches.
Je t'invite à lire la documentation et la partie du cours sur OpenClassrooms :
Le cours[url=https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/les-expressions-regulieres-partie-2-2-2]
[/url][url=http://php.net/manual/fr/function.preg-replace.php]La doc
[/url]
Bref, j'ai voulu me pratiquer (première fois que j'utilise vraiment preg_replace) et voici ce que ça a donné :

$mv = 'Appelle moi stp ! 0558585858 autre chose 1234567890';
$mv = preg_replace('/[0-9]{10}/', "<strong>$0</strong>", $mv);

echo $mv;
Alors, en premier tu as ta chaîne de caractères avec les numéros, etc.

Après, tu as la fonction preg_replace qui utilise la REGEX suivant : /[0-9]{10}/
Si tu n'es pas familier avec ça, ça signifie : recherche un nombre de 0-9 répété 10 fois.

Le 2 ème paramète de la fonction, c'est par ce que ça va être remplacé.
J'ai décidé de l'entourer de balises "<strong>", mais tu peux le modifier comme tu veux !

Le 3ème paramètre est la chaîne de caractères où il faut trouver le pattern (premier paramètre).

Et j'imagine que tu comprends la dernière ligne !

J'espère avoir pu t'aider, si tu as d'autres questions n'hésites pas !

PS : Ça m'a permis de pratiquer !
Blast0Kd

Blast0Kd Le 30 juillet 2016 à 02:09

t'es bête ou quoi, ta varibale c'est ton numéro de téléphone dans lquel on vérifie avec une fonction php si il y a des nombres !! Ecoute ce qu'on te dit
guewen

guewen Le 30 juillet 2016 à 10:35

Laisse tomber blast, on ne se comprend pas mais merci pour le compliment 😉

Merci beaucoup TheFlameflo ! Je vais regarder le code et essayer de le refaire 😉 Tel est le but non ? 😄
J'aurais une petite question si, pourquoi mettre sa : $0 entre les variables strong ? Je ne dois pas assez connaître. Je suppose que sa veut dire :  Tu m'echo à l'endroit où le numéro est rempli le résultat ?
guewen

guewen Le 30 juillet 2016 à 10:39

Non, c'est bon, je viens de regarder le cours d'open classrooms et j'ai compris ce que c'était 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte