if MONTITRE contient A alors....

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : if MONTITRE contient A alors....

Re: if MONTITRE contient A alors....

par two3d » 08 mars 2013, 18:22

$donnees['titre'] donne quoi comme résultat ?

pour ne pas utiliser strtolower plutôt que mb_strtolower ?

Re: if MONTITRE contient A alors....

par maxpimp » 08 mars 2013, 11:54

Effectivement de mon coté ça fonctionne bien quand je déclare
$titre="Vidéo...."
Par contre quand je déclare $titre=mb_strtolower($donnees['titre']), le titre est reconnu, l'echo fonctionne mais j'ai encore cette réponse le mot vidéo n'apparait pas dans "Vidéo..."

Re: if MONTITRE contient A alors....

par two3d » 07 mars 2013, 17:54

salut, j'ai testé en local, le code fonctionne très bien:
$titre = "vidéo lundi basket n°18";
if(preg_match("#vid(é|e)o#i",$titre)) {
	echo '<a href="multimedia-video.php">Voir la liste de toutes les vid&eacute;os du GBO</a>';
} else {
	echo "non il n'y a pas le mot vid&eacute;o dans le titre " ;
	echo $titre;
}

Re: if MONTITRE contient A alors....

par maxpimp » 07 mars 2013, 11:53

Toujours rien, j'ai mixé le preg_match et le mb_strtolower mais il me sort encore la réponse bizarre non il n'y a pas le mot vidéo dans le titre vidéo : lundi basket n°18 #-o
Et le problème ne vient pas du mot vidéo car j'ai testé le mot basket et il n'est pas trouvé non plus dans la chaîne lundi basket !

Code : Tout sélectionner

<?php $titre =mb_strtolower(stripslashes($donnees['titre'])); if(preg_match("#vid(é|e)o#i",$titre)) { echo '<a href="multimedia-video.php">Voir la liste de toutes les vid&eacute;os du GBO</a>'; } else { echo "non il n'y a pas le mot vid&eacute;o dans le titre " ; echo $titre; } ?>

Re: if MONTITRE contient A alors....

par maxpimp » 07 mars 2013, 10:49

Hello,

Alors avec preg_match ça fonctionne pas voici mon code :

Code : Tout sélectionner

<?php $titre =($donnees['titre']); if(preg_match("#vid(é|e)o#i",$titre)) { echo '<a href="multimedia-video.php">Voir la liste de toutes les vid&eacute;os du GBO</a>'; } else { echo "non"; echo $titre; } ?>
Là dans tous les cas j'ai la réponse FALSE et pourtant mon $titre est bien reconnu.
je vais maintenant essayer l'idée de sirakawa avec mb_strtolower

Re: if MONTITRE contient A alors....

par two3d » 07 mars 2013, 10:27

super, merci pour ces informations :wink:

Re: if MONTITRE contient A alors....

par sirakawa » 07 mars 2013, 09:49

On l'appelle le "Pipe"... parce qu'il sert au départ à passer des résultats d'une commande système à une autre, comme dans un tuyau:
ps -ef
la commande ps renvoie une liste de processus qui est affichée
ps -ef|grep mon_fic
ici la liste est repassée à la commande grep qui y cherche mon_fic et affiche le résultat.
Possible aussi avec l'invite de commande s d Windaube.
la barre oblique c'est slash (/) ou antislash (\ Altgr 8)

Re: if MONTITRE contient A alors....

par two3d » 06 mars 2013, 23:02

altgr+6 = barre oblique ? pas comme ça qu'ont l'appel ?

Re: if MONTITRE contient A alors....

par sirakawa » 06 mars 2013, 19:09

salut, avec preg_match ça fonctionne pas ?

voici ce que j'aurais fait:
$titre = "123 Vidéo bla bla bla";
if(preg_match("#vid(é|e)o#i",$titre)) 
	echo 'trouvé!';
else
	echo 'Non trouvé';
décorticage du preg_match pour explication:

#vid(é|e)o#i"
i = insensible à la casse (recherche ViDeo comme viDEo, etc...)
(é|e) recherche vidéo ou video, la barre oblique dit "ou"

Bonne continuation
Ca doit fonctionner, mais je n'ai pas le réflexe, car je ne m'en sers que lorsque j'ai des expressions hyper complexes.
En revanche ce n'est pas la barre oblique qui dir 'ou', mais la barre verticale (ALTGr 6)

Re: if MONTITRE contient A alors....

par two3d » 06 mars 2013, 16:34

salut, avec preg_match ça fonctionne pas ?

voici ce que j'aurais fait:
$titre = "123 Vidéo bla bla bla";
if(preg_match("#vid(é|e)o#i",$titre)) 
	echo 'trouvé!';
else
	echo 'Non trouvé';
décorticage du preg_match pour explication:

#vid(é|e)o#i"
i = insensible à la casse (recherche ViDeo comme viDEo, etc...)
(é|e) recherche vidéo ou video, la barre oblique dit "ou"

Bonne continuation

Re: if MONTITRE contient A alors....

par sirakawa » 05 mars 2013, 19:28

Bjr,
Question de base:
Encodage de la BDD en utf-8 ?
parce que alors, il faudrait ajouter dans le script:
mb_internal_encoding( 'UTF-8');
et utiliser: mb_strpos au lieu de strpos
quelque chose de ce genre, un peu compliqué, mais facile à généraliser
$possibles = array("video","vidéo");
$limite = count ($possibles);
$est_video = false;
$i = 0;
$titre =mb_strtolower(stripslashes($donnees['titre']));
while (($i < $limite) and ($est_video == false))
{
 $est_video = (mb_strpos($possibles[$i], $titre) === true);
$i ++;
}

Re: if MONTITRE contient A alors....

par maxpimp » 05 mars 2013, 11:22

j'ai utilisé un autre format : if($found) {
foreach($found as $pos)

Code : Tout sélectionner

<?php $titre =stripslashes($donnees['titre']); $findme = 'Vid&eacute;o'; $found = strpos($titre, $findme); if($found) { foreach($found as $pos) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$titre'"; } } else { echo "<a href='multimedia-video.php'>Voir la liste de toutes les vid&eacute;os du GBO</a>"; } ?>
Cette fois ci mon lien apparait même sur les pages qui ne contiennent pas le mot vidéo #-o

Re: if MONTITRE contient A alors....

par maxpimp » 05 mars 2013, 11:00

Pourquoi les %? Si tu veux utiliser 1 regex tu peux passer par preg_match: http://www.php.net/manual/fr/function.preg-match.php
sinon tu peux utiliser strpos: http://www.php.net/manual/fr/function.strpos.php
Merci sam12, j'ai testé strpos mais ça ne fonctionne pas, j'ai du raté une étape.
Voici mon code

Code : Tout sélectionner

<?php $titre =stripslashes($donnees['titre']); //mon titre pris dans ma BDD, dans la page que je teste le titre est "VIDEO : TOP 10..." $findme = 'Vidéo'; $pos = strpos($titre, $findme); if ($pos === false) { echo "La chaîne '$findme' ne se trouve pas dans la chaîne '$mystring'"; // c'est la réponse que j'ai sur ma page alors que logiquement VID se trouve dans mon titre } else { echo "La chaine '$findme' a été trouvée dans la chaîne '$mystring'"; } ?>
Voici exactement la réponse :
La chaine 'Vidéo' ne se trouve pas dans la chaine 'Vidéo : Lundi Basket n°17' :shock:

Re: if MONTITRE contient A alors....

par sam12 » 04 mars 2013, 19:48

Pourquoi les %? Si tu veux utiliser 1 regex tu peux passer par preg_match: http://www.php.net/manual/fr/function.preg-match.php
sinon tu peux utiliser strpos: http://www.php.net/manual/fr/function.strpos.php

Re: if MONTITRE contient A alors....

par maxpimp » 04 mars 2013, 17:20

en sachant que j'ai déjà codé ceci mais je n'ai pas de réponse :

Code : Tout sélectionner

<?php if($titre == "%vidéo%") { echo "<a href="#">Liste des vidéos</a>"; } ?>