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 :

Mettre une fonction et un lien dans un heredoc


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut Mettre une fonction et un lien dans un heredoc
    Bonjour,
    Je veux ajouter une fonction php dans ma chaîne heredoc ainsi qu'un lien mais cela ne fonctionne pas comme prévu (URL_SITE est une constante).
    L'affichage à l'écran donne:
    Vous venez de vous abonner au site \"{basename({URL_SITE})}\". Pour que votre abonnement devienne effectif, vous devez cliquer sur ce lien.
    et le lien devient: http://monsite/%7BURL_SITE%7Dsubscri...k.php?token=%s
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    define('MSG_HTML', <<<HTML
    Vous venez de vous abonner au site "{basename(URL_SITE)}". Pour que votre abonnement devienne effectif, vous devez cliquer sur 
    <a href='{URL_SITE}subscribe.check.php?token=%s'>ce lien</a>.
    Ce lien est valable 24 heures. Sans intervention de votre part dans ce laps de temps, il sera caduque.
    HTML
    );

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Essaie çà.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    define ('URL_SITE',"mon_url_a_moi");
    $constant = "constant";
    $basename = "basename";
    define('MSG_HTML', <<<HTML
    Vous venez de vous abonner au site "{$basename($constant('URL_SITE'))}". Pour que votre abonnement devienne effectif, vous devez cliquer sur 
    <a href='{$constant('URL_SITE')}subscribe.check.php?token=%s'>ce lien</a>.
    Ce lien est valable 24 heures. Sans intervention de votre part dans ce laps de temps, il sera caduque.
    HTML
    );
    print MSG_HTML;

    Mets une vraie url à la place de mon_url_a_moi.

    PHP est vraiment très puissant !

    Nom : Capture20190102_001.JPG
Affichages : 93
Taille : 36,5 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Bonjour et merci. Si je comprends bien, on ne peut pas mettre de fonction dans le heredoc. On est obligé de passé par des variables.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    RIEN ne t'oblige à utiliser heredoc.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    define('MSG_HTML', 'Vous venez de vous abonner au site "'.basename(URL_SITE).'". 
    Pour que votre abonnement devienne effectif, vous devez cliquer sur <a href="'.URL_SITE.'subscribe.check.php?token=%s">ce lien</a>.<br />
    Ce lien est valable 24 heures. Sans intervention de votre part dans ce laps de temps, il sera caduque.');

  5. #5
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Citation Envoyé par moimp Voir le message
    Bonjour et merci. Si je comprends bien, on ne peut pas mettre de fonction dans le heredoc. On est obligé de passé par des variables.
    On passe par des variables qui contiennent les noms des fonctions. Donc on utilise les fonctions.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    RIEN ne t'oblige à utiliser heredoc.
    C'est exact, c'est ce que j'avais commencé à faire mais j'avais pensé que ce serait plus simple avec heredoc, ce qui ne semble pas être vraiment le cas. C'était aussi une façon d'apprendre et j'ai d'ailleurs appris qu'on pouvait passer par des variables pour mettre le nom des fonctions. Merci à vous deux.

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    une autre méthode qui te permet d'injecter tes valeurs tout en restant compatible unicode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    define('URL_SITE', 'www.monsite.fr');
     
    define('MSG_HTML', str_replace(['{{URL_SITE}}', '{{HREF}}'], [basename(URL_SITE), URL_SITE], <<<'HTML'
    Vous venez de vous abonner au site "{{URL_SITE}}". Pour que votre abonnement devienne effectif, vous devez cliquer sur
    <a href="{{HREF}}/subscribe.check.php?token=%s">ce lien</a>.
    Ce lien est valable 24 heures. Sans intervention de votre part dans ce laps de temps, il sera caduque.
    HTML
    ));

  8. #8
    Invité
    Invité(e)
    Par défaut
    Remarque :

    au masculin, c'est "caduc".

    Comme le "trou" du même nom...

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    Merci @rawsrc pour cette suggestion mais je ne comprends pourquoi il faut doubler les accolades.
    @jreaux62: Moi qui croyais être bon en Français et plus particulièrement en orthographe, je vois que, là aussi, je dois faire preuve d'humilité. Merci!

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Mais y a rien à doubler, tu mets ce que tu veux du moment que ce qui est à remplacer dans le texte reste facilement identifiable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    define('URL_SITE', 'www.monsite.fr');
     
    define('MSG_HTML', str_replace(['URL_SITE', 'HREF'], [basename(URL_SITE), URL_SITE], <<<'HTML'
    Vous venez de vous abonner au site "URL_SITE". Pour que votre abonnement devienne effectif, vous devez cliquer sur
    <a href="HREF/subscribe.check.php?token=%s">ce lien</a>.
    Ce lien est valable 24 heures. Sans intervention de votre part dans ce laps de temps, il sera caduc.
    HTML
    ));

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 579
    Points : 804
    Points
    804
    Par défaut
    D'accord, merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/12/2011, 08h53
  2. mettre une fonction javascript dans un innerhtml
    Par brunoperel dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2008, 11h42
  3. "Mettre une fonction dans une bibliotheque"
    Par Panaméen dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/10/2007, 07h45
  4. Mettre une fonction dans un Commentaire
    Par zephirsoul dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2007, 14h02
  5. mettre une fonction dans une regex
    Par IP-Fix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2007, 18h47

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