begin process at 2012 05 31 04:23:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Aide & documentation

 > 

PHP Recherche chaîne de caractère


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP Recherche chaîne de caractère

mardi 9 mars 2010 à 19:23:13 | PHP Recherche chaîne de caractère

regisgb17


Bonjour,

Sur mon site www.alpesfaune.fr j'ai créé une recherche de photos.

J'utilise en php la fonction eregi() qui recherche si une chaîne de caractère est contenue dans une autre sans tenir compte des majuscules.

Comment faire pour ne pas tenir compte des accents ? et des caracteres spéciaux..

Merci

Régis
http://alpesfaune.fr
mardi 9 mars 2010 à 21:51:11 | Re : PHP Recherche chaîne de caractère

kohntark

Membre Club
Salut,

Il manque à mon sens des précisions :
- que souhaites tu (très) précisément ?
où se trouve la chaîne dans laquelle chercher ? En DB ? dans un répertoire ? un
fichier texte contenant des mots clés ? autre ?
- quelle est la regex que tu utilises ?
- quel traitement, si il y a, effectues tu pour les données postées ?
- etc ...

eregi() est dépréciée, utilise plutôt preg_match()


Merci pour le site, c'est un régal !!
Superbes photos, ... chapeau bas
J'avais déjà eu l'occasion de le consulter, mais pas de faire part de mes impressions (sur le contenu, pas la forme ) voilà qui est fait.

Dommage cependant que l'ergonomie ne soit pas top et que ces affreuses pubs google viennent tout gâcher (sont elles vraiment nécessaires ??)


Cordialement,

Kohntark -

mercredi 10 mars 2010 à 10:30:09 | Re : PHP Recherche chaîne de caractère

regisgb17

Merci ta réponse et pour tes commentaires sur les photos n'hesites pas à t'inscires pour qu on puisse te prevenir quand il y a de nouvelles photos..;

Pour la pub si ca peu arrondir mes fin de mois c'est cool, je ne l'ai mise en place que depuis 3 jours. et j'ai essayé de la faire discrete (couleur de fond)...



Pour la recherche:
Détail du fonctionnement:
En BDD:
1 num par photo
avec son nom

Donc je fais une recherche comme ca en php:

[...]
$var = mysql_query("SELECT (num de la photo), (nom photo) FROM photos");
while ($row = mysql_fetch_assoc($var))
{
if(eregi($rech,$row["(nom de la photo)"]))
[...]

$rech étant la recherche que tu fais...


Voila si il y a une meilleure facon je suis preneur...

Merci

Régis
http://alpesfaune.fr
mardi 16 mars 2010 à 09:53:58 | [Résolu] PHP Recherche chaîne de caractère

regisgb17


Pour info j'ai fais:

strtr($var,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');

pour remplacer les caracteres accentués par des non accentués...

Régis
--
http://www.alpesfaune.fr
mardi 16 mars 2010 à 20:40:19 | Re : PHP Recherche chaîne de caractère

kohntark

Membre Club
Salut,

Attention :
L'utilisation de strtr() va poser problème si tu utilises un encodage UTF-8. Penses y dès maintenant histoire d'éviter les problèmes futurs, parce qu'un jour ou l'autre faut bien y passer hein
Remplace donc par str_replace() qui gère sans soucis les différents encodages.

Ta solution en est certes une, mais elle n'est pas la meilleure, et encore moins la plus simple.
Pourquoi ne fais tu pas simplement :

SELECT num_de_la_photo, nom_photo FROM photos
WHERE nom_photo LIKE '%ce_que_l_utilisateur_a_posté%'


Tu récupères ainsi le ou les résultats qui peuvent intéresser le visiteur sans passer par le traitement php/regex.
Mais ça reste loin du moteur de recherche !
Peut être devrais tu mettre en place un système de mots clés ?

Pour la pub si ca peu arrondir mes fin de mois c'est cool, je ne l'ai mise en place que depuis 3 jours. et j'ai essayé de la faire discrete (couleur de fond)...


Ben j'trouve que c'est loupé !! Ce n'est pas discret du tout et ça défigure gravement le site, d'autant plus que ton design est très simpliste, ce que je considère, mais c'est personnel, comme une qualité, même si quelques artifices ne nuiraient pas, et pourquoi pas un petit texte accompagnant les photos.

Tu as retouché n'est ce pas ? ... je demande car il me semblait que ces fâcheuses pubs prenaient plus de place la dernière fois et que le "Pour ne plus
voir la PUB Inscrivez vous" n'existait pas.

Concernant un "arrondissement des fins de mois" je doute fort que tu t'y retrouves avec le nombre de visiteurs que tu as.

Ce que je pense :
- la pub ... beurk (je ne m'étends pas plus)
- tu as de très bonnes photos
- la rubrique carte est une bonne idée

Pourquoi ne pas étoffer cette dernière rubrique en :
- personnalisant le message du recto (parce que "bonne année 2010" ça risque de ne plus intéresser grand monde) selon le souhait de l'utilisateur
- améliorant (grandement) la présentation du message
- mettant un peu plus en avant ton site, sans pour autant retomber dans le piège de la pub
- etc ...

Il y a à mon avis des choses à faire de ce côté, qui pourraient je pense remplacer avantageusement la pub, en mettant en place un service payant qui proposerait des avantages face au gratuit.

... me suis envoyé une carte :
- un/des F5 (actualiser) envoie autant de fois le mail, le formatage présente des défauts
- le "Si vous avez des difficultés pour visualiser ce message, cliquez sur le lien suivant: ..." ne reprends pas le message
- ...

Bref, tu l'auras compris, j'aime pas ces pubs, alors je m'inscris :
"Identifiant et Mot de passe limités à 8 carractères"
=> est ce vraiment une bonne idée ? Qu'est ce qui peut le justifier ?
Pour le mdp passe encore (et encore !!) mais l'identifiant ?

Je réduis la taille de mon pass
=> "Warning: Cannot modify header information - headers already sent by (output started at /homez.42/alpesfau/www/inscription.php:83) in /homez.42/alpesfau/www/inscription.php on line 84"

... ça à l'air de passer malgré tout.

Je confirme, sans les pubs c'est bien mieux !!


Cordialement,



Kohntark -

mardi 16 mars 2010 à 20:55:56 | Re : PHP Recherche chaîne de caractère

kohntark

Membre Club
... et puis comment fait on pour se reconnecter ??



Kohntark -

mardi 16 mars 2010 à 20:57:53 | Re : PHP Recherche chaîne de caractère

kohntark

Membre Club
OK, faut retourner sur la page d'accueil ... pas très ergonomique !!



Kohntark -

mercredi 17 mars 2010 à 16:48:14 | Re : PHP Recherche chaîne de caractère

regisgb17

Tout d'abord merci de tous ces commentaires qui ne peuvent que m aider a améliorer le site.
Juste pour info, je ne passe pas assez de temps sur l'evolution du site, je dev pour le plaisir... de temps a autre...


Ta solution en est certes une, mais elle n'est pas la meilleure, et encore moins la plus simple.
Pourquoi ne fais tu pas simplement :

SELECT num_de_la_photo, nom_photo FROM photos
WHERE nom_photo LIKE '%ce_que_l_utilisateur_a_posté%'



Super ta solus c'est exactement ce que je cherché... Mais le defaut c'est que like est sensible aux accents... Donc il faut que je cré des keywords... ce qui implique plusieurs modifs... C'est donc une évolution a venir...


Ben j'trouve que c'est loupé !! Ce n'est pas discret du tout et ça défigure gravement le site, d'autant plus que ton design est très simpliste, ce que je considère, mais c'est personnel, comme une qualité, même si quelques artifices ne nuiraient pas, et pourquoi pas un petit texte accompagnant les photos.




le css est une évolution en vue pour améliorer l'ergonomie mais ce n'est pas pour tout de suite...
et le texte accompagnant les photos est une bonne idée...


Tu as retouché n'est ce pas ? ... je demande car il me semblait que ces fâcheuses pubs prenaient plus de place la dernière fois et que le "Pour ne plus
voir la PUB Inscrivez vous" n'existait pas.



Et bien oui j'ai pris en compte tes remarques. Trop de pub gâche les photos... Donc ceux qui sont inscrits n'ont pas de pub... je pense que c'est un bon équilibre... Merci de t'être inscrit... c cool...


Pour tous tes conseils sur les cartes je suis d'accord avec toi, j'y avais pensé... mais je n'ai pas encore eu le temps de le mettre en place...


Pour la limite du nombre de caractères je ne vois pas non plus de bonne raison, je ne me souviens pas pourquoi cette limite... a corriger...


Et pour le bugg je m'en occupe tres vite...



Encore merci de tes conseils et avis...

J'espère a très bientôt sur Alpes Faune...

Régis
http://www.alpesfaune.fr
mercredi 17 mars 2010 à 22:23:48 | Re : PHP Recherche chaîne de caractère

kohntark

Membre Club

Mais le defaut c'est que like est sensible aux accents... Donc il faut que je cré des keywords... ce qui implique plusieurs modifs... C'est donc une évolution a venir...


Non, LIKE n'est pas sensible aux accents en soi. C'est la collation MySQL qui détermine son comportement et celui de bien d'autres fonctions.
Par exemple, si tu est encodé UTF-8 dans ta DB :
choisir une collation UTF8_general_ci ne tiendra compte ni de la casse, ni des accents, et de ce fait tu peux passer directement une requête similaire à celle de mon exemple.
Par contre une collation UTF8_bin prendra en compte la casse (MACHIN != machin) et les accents.
Choisir la première est souvent une bonne idée, sachant que tu peux spécifier ces collations à différents niveaux (la base, la connexion, les champs, ...) et surtout que tu peux le faire dynamiquement; ainsi, en admettant que tu sois en utf8 avec une collation en utf8_bin (donc dépendant de la casse et des accents) :

Code :
SELECT num_de_la_photo, nom_photo
FROM photos
WHERE nom_photo COLLATE utf8_general_ci
LIKE '%ce_que_l_utilisateur_a_posté%' 


permettra de faire une recherche sans tenir compte de la casse et des accents (puisque collation utf8_general_ci).
C'est à mon sens bien plus pratique, et surtout plus fiable et rapide, que de passer par une fonction php.


En espérant que ça puisse t'aider.

Bonne soirée,

Kohntark -

mercredi 17 mars 2010 à 22:57:20 | Re : PHP Recherche chaîne de caractère

regisgb17

merci

j esserai...

Bonne soirée


Régis
http://www.alpesfaune.fr


Cette discussion est classée dans : php, recherche, caractère, chaîne, alpesfaune


Répondre à ce message

Sujets en rapport avec ce message

Extraction de chaîne de caractère et suppression de caracère pour recherche Mysql [ par mulbek ] Suite à mon premier problème (résolu) j'arrive donc à insérer une chaîne de caractère  /1/2/3/n.... dans un champ de ma première table.Mais le 2nd pro Recherche codeurs [ par antonin_d ] Bonjour à tous, je recherche actuellement des codeurs PHP afin d'améliorer notre projet en reconstruction. Le rôle des codeurs PHP serait de créer en Recherche programmeur php pour script [ par GwadaRisk ] Bonjour, Je suis à la recherche d'un programmeur php pour la réalisation d'un script. Je tiens d'avance à préciser que mes moyens étant très limité, chercher une chaîne de caractère à partir d’une autre chaîne de caractère [ par mwahid ] La question est : Je voudrait chercher une chaîne de caractère à partir d’une autre chaîne de caractère . Comme la fonction charAt en javascript.MER Chaîne de caractère dans une requête [ par matos_deluxe ] Salut, je souhaite filtrer une chaîne de caractère dans une requête SQL. J'ai dans ma base, une variable qui correspond à une date (d/m/y) mais du ty Script d'annonce en php [ par manoll ] Bonjours a tous,Voila je recherche un script d'annonce d'emploie. J'ai trouvé sur le site des scriptes sympa mais pour des annonces divers comme des v Recherche [ par levampiremarius ] Bonjour, Je voudrais savoir s'il existe une fonction ou un moyen de faire en sorte que php récupere et renvoie uniquement une valeur entre deux chain Recherche programmeur(s) PHP [ par e7kv4uv ] Bonjour, Je suis propriétaire d'un site de jeux vidéo avec nom de domaine. Plutot que de ne pas servir, je prefererai qu'il y ait quelque chose en pl Recherche un junkbox en php [ par lunnatick ] Bonjour, quelqu'un saurait-il ou je peut trouver un junkbox pour lister et ecouter des sons .mp3 et .wna avec un maximun d'options en php ? Aide Urgente pour réalisation d'un Moteur de recherche en php pour une base de données oracle [ par chocholman ] Bonjour je suis un stagiaire dans une entreprise qui utilise une base de données oracle et je debute en php. Il faut que je fasse un moteur de recherc


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales