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 :

Condition pour différencier des liens


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut Condition pour différencier des liens
    Bonjour,

    Je reviens vers vous car je voudrais trouver une solution à un problème.

    Grâce à vous j'ai pu utiliser ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne=str_replace("href=\"","href=\"../mon_cms/",$ligne);
    Le code globale est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $fichier = fopen("../mon_cms/cms_data/viemu_motdumaire.txt", "r");
    while(!feof($fichier))
    {
    $ligne = fgets($fichier);
    // modification des liens à la volé
    $ligne=str_replace("href=\"","href=\"../mon_cms/",$ligne);
    $ligne=str_replace("src=\"","src=\"../mon_cms/",$ligne);
    echo $ligne;
    }
    fclose($fichier);
    ?>
    Ce dernier me permettant de faire fonctionner des liens internes depuis des fichiers qui sont situé dans un dossier parallèle au dossier du CMS.
    Cela transforme un lien de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="cmsfiles/3.jpg"> test </a>
    <a href="../mon_cms/cmsfiles/3.jpg"> test </a>
    Jusque là tout va bien.

    Par contre si j'insère un lien externe je vais avoir:
    http://monsite/mon_cms/http://www.monlien_externe.com
    au lieu de
    http://www.monlien_externe.com

    Ce qui est logique puisque je lui demande de changer la chaîne de caractère.

    Ma question est donc, comment formuler en PHP la condition suivante :

    Si
    http://www
    alors
    ne remplace pas la chaîne de caractère

    Cordialement
    Philippe Rivière.

  2. #2
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Tu peux faire ca par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (ereg(http://www,$var))
    {
    ........
    }

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut
    Ok merci, j'ai cherché comment fonctionnait la fonction ereg.
    J'ai pas tout compris, mais voilà à quoi j'arrive :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $fichier = fopen("../mon_cms/cms_data/viemu_motdumaire.txt", "r");
    while(!feof($fichier))
    {
    $ligne = fgets($fichier);
     
    if (ereg(http://www,$ligne))
    {echo $ligne;}
    else
    {$ligne=str_replace("href=\"","href=\"../mon_cms/",$ligne);
    $ligne=str_replace("src=\"","src=\"../mon_cms/",$ligne);
    echo $ligne;}
     
    }
    fclose($fichier);
    ?>
    Mais je sent que c'est faux...
    (là je ne suis pas sur place pour vérifier).

    Citation Envoyé par Katachana Voir le message
    Tu peux faire ca par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (ereg(http://www,$var))
    {
    ........
    }

  4. #4
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    il faut juste que tu mettes la chaine à rechercher entre guillemet , et vérifie au niveau des caractères / et : s'il ne faut pas les précéder de \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ereg("http://www",$ligne))

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut
    ok merci, ce qui donne globalement ça : ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (ereg("http://www",$ligne))
    {echo $ligne;}
    else
    {$ligne=str_replace("href=\"","href=\"../mon_cms/",$ligne);
    $ligne=str_replace("src=\"","src=\"../mon_cms/",$ligne);
    echo $ligne;}

    Citation Envoyé par Katachana Voir le message
    il faut juste que tu mettes la chaine à rechercher entre guillemet , et vérifie au niveau des caractères / et : s'il ne faut pas les précéder de \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ereg("http://www",$ligne))

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 81
    Par défaut
    Je viens de faire le test et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (ereg("http",$ligne))
    {echo $ligne;}
    else
    {$ligne=str_replace("href=\"","href=\"../mon_cms/",$ligne);
    $ligne=str_replace("src=\"","src=\"../mon_cms/",$ligne);
    echo $ligne;}
    Fait que soit ça marche avec les liens externes avec un http soit ça marche avec les lien interne en remplaçant la chaine par "../mon_cms/".

    Mais comment exprimer en php que l'on veut les deux conditions à la fois, cad les liens internes cohabitant avec les liens externe ?

    Soit exprimer la chose suivante :
    Si
    Apres href tu trouves http
    alors
    ne fais rien
    Sinon
    Rajoutes apres href "../mon_cms"

  7. #7
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    En utilisant else if

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

Discussions similaires

  1. Problème synthaxe pour récuperer des liens (HTML)
    Par stansoad0108 dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2008, 16h37
  2. condition pour colorer des cellules
    Par emillio dans le forum Excel
    Réponses: 18
    Dernier message: 15/03/2008, 07h34
  3. [RegEx] Exclure une chaine dans un motif, pour extraire des liens html
    Par Dimitri01 dans le forum Langage
    Réponses: 4
    Dernier message: 09/11/2007, 16h40
  4. [FTP] Qui a le scrit pour créer des liens automatiques ?
    Par JackBeauregard dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 20h37
  5. [débutante]utiliser les classes css pour surligner des liens
    Par Mitaka dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/01/2006, 09h37

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