IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[php] str_replace et strpos


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut [php] str_replace et strpos
    Bonjour a tous,
    j'ai quelques problèmes pour parser une page html.
    Charset : ISO-8859-1


    - Tout d'abord je récupère une chaine de ce type "20 328 052" et je souhaite enlever les espaces insécables pour qu'il ne reste qu'un nombre et impossible, j'ai tout essayé (explode/implode, str_replace...) pour informations strlen renvoie 12).
    - Ensuite, je souhaite connaitre la position d'une chaine dans une autre grace a strpos je cherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pos1 = strpos($actors, '<h2>Réalisateur</h2>');
    		if ($pos1 === false)
    			return (NULL);
    Cela me retourne toujours NULL alors que dans la chaine c'est bien present...
    - Enfin, je récupère un moi en francais genre "Janvier" etc et je souhaite retourner son numéro associer ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	function StripAccents($string)
    	{
    		return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    	}
     
    	function GetMonth($month)
    	{
    		$moi = array("Janvier" => 1, "F&eacute;vrier" => 2, "Mars" => 3, "Avril" => 4, "Mai" => 5, "Juin" => 6, "Juillet" => 7, "Août" => 8, "Septembre" => 9, "Octobre" => 10, "Novembre" => 11, "Décembre" => 12);
    return $moi[$month];
    }
    Et la encore les moi avec accent comme février ne passe pas, j'ai tout essaye, je ne comprend pas. StripAccent ne fonctionne d'ailleurs pas !


    Merci d'avance.

    Cordialement,
    NeoKript

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    - Tout d'abord je récupère une chaine de ce type "20&nbsp;328&nbsp;052" et je souhaite enlever les espaces insécables pour qu'il ne reste qu'un nombre et impossible, j'ai tout essayé (explode/implode, str_replace...) pour informations strlen renvoie 12).
    As-tu essayé la fonction html_entity_decode() ?
    Fred

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Salut, j'avais déjà essaye et pas mieux :s

    Merci quand même !

  4. #4
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    - Ensuite, je souhaite connaitre la position d'une chaine dans une autre grace a strpos je cherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pos1 = strpos($actors, '<h2>Réalisateur</h2>');
    		if ($pos1 === false)
    			return (NULL);
    Cela me retourne toujours NULL alors que dans la chaine c'est bien present...
    Tu es sûr que $actors contient exactement '<h2>Réalisateur</h2>' ?
    Avec un echo et un affichage du code source cela ne fait pas apparaître des caractères spéciaux style : &eacute; pour le é de réalisateur.
    Fred

  5. #5
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Envoyé par NeoKript Voir le message
    - Tout d'abord je récupère une chaine de ce type "20&nbsp;328&nbsp;052" et je souhaite enlever les espaces insécables pour qu'il ne reste qu'un nombre et impossible, j'ai tout essayé (explode/implode, str_replace...) pour informations strlen renvoie 12).
    Chez moi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace("&nbsp;","","20&nbsp;328&nbsp;052");
    affiche 20328052,
    mais, à priori, tu as aussi déjà testé ça.
    Fred

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par micetf Voir le message
    Chez moi,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace("&nbsp;","","20&nbsp;328&nbsp;052");
    affiche 20328052,
    mais, à priori, tu as aussi déjà testé ça.
    Fred
    En effet, j'ai déjà teste et ca ne passe pas... je ne comprend pas.

    Quand a $actors elle contient exactement '<h2>Réalisateur</h2>'... je viens de re-vefirier !
    Ca fait longtemps que je fais du php et jamais eu de tel problème, je ne comprend pas !

    Merci de ton aide en tout cas.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Pour le strpos c'est bon en fait je parsais un site encoder en UTF8 ... du coup ca ne passait pas après mon file_get_contents, je fait un utf8_decode (afin d'avoir la chaine en ISO) et ca passe.

    Ça a réglé 2 problèmes, il manque plus que les &nbsp; qui sont toujours présent.
    Si quelqu'un a une idee...

    Merci

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    J'avais oublier de mettre utf8_decode ... c'est bon ca passe tout nickel maintenant. Je le saurais maintenant, faire attention au charset du site que l'on parse !

    Merci encore,
    cordialement,
    NeoKript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2007, 12h50
  2. Un équivalent str_replace ou strtr de php en js ?
    Par lametal dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/10/2006, 17h10
  3. Réponses: 34
    Dernier message: 24/05/2006, 01h08
  4. Php: str_replace étrange...
    Par Abused dans le forum Langage
    Réponses: 13
    Dernier message: 23/02/2006, 16h24
  5. PHP str_replace
    Par carlos20 dans le forum Langage
    Réponses: 14
    Dernier message: 02/12/2005, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo