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 dans l'attribut html <a href=


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut php dans l'attribut html <a href=
    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a href=<?php echo $Variable[$iLangue][19]; ?> target="_blank">
                 <?php if ($Variable[$iLangue][22] == "TexteEcrit") {
    	     $Espace_ = ((70 - strlen($Variable[$iLangue][25])) / 2);
                echo "<text id='Visualisation06R01'>".str_repeat('&nbsp;',$Espace_).$Variable[$iLangue][25].str_repeat('&nbsp;',$Espace_)."</text>";
                . . .
    Ma question: ? pourquoi mon '<a Href' est-il sensible sur l'étendue du 1er str_repeat et pas sur l'entendue du 2ème.

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

    1/ B.A.BA du débogage : afficher le code HTML généré.

    2/ mettre <span style="white-space:pre;">...

    3/ utiliser mb_strlen() si multi-octets (utf-8).

    4/ voir str_pad()
    (voir aussi l'exemple "multibyte version" -> fonction mb_str_pad() à ajouter)
    [EDIT] Après test, ne semble pas utilisable avec espace insécable. Mais avec espace normal + 2/, oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function mb_str_pad($str, $pad_len, $pad_str = ' ', $dir = STR_PAD_RIGHT, $encoding = NULL)
    {
        $encoding = $encoding === NULL ? mb_internal_encoding() : $encoding;
        $padBefore = $dir === STR_PAD_BOTH || $dir === STR_PAD_LEFT;
        $padAfter = $dir === STR_PAD_BOTH || $dir === STR_PAD_RIGHT;
        $pad_len -= mb_strlen($str, $encoding);
        $targetLen = $padBefore && $padAfter ? $pad_len / 2 : $pad_len;
        $strToRepeatLen = mb_strlen($pad_str, $encoding);
        $repeatTimes = ceil($targetLen / $strToRepeatLen);
        $repeatedString = str_repeat($pad_str, max(0, $repeatTimes)); // safe if used with valid utf-8 strings
        $before = $padBefore ? mb_substr($repeatedString, 0, floor($targetLen), $encoding) : '';
        $after = $padAfter ? mb_substr($repeatedString, 0, ceil($targetLen), $encoding) : '';
        return $before . $str . $after;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<span style="white-space:pre;">'.mb_str_pad($texte, 70, ' ', STR_PAD_BOTH, 'utf-8').'</span>';

    5/ CELA ETANT DIT : il ne faut pas confondre longueur en octets et longueur en pixels !
    Les caractères n'ont pas tous la même largeur en pixels ! (à moins d'utiliser une police à chasse fixe, comme "monospace" par exemple)

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $texte = 'Hello the World';
    echo '<span style="white-space:pre;">-'.mb_str_pad($texte, 40, ' ', STR_PAD_BOTH, 'utf-8').'-</span><br />';
    $texte = 'C\'est déjà l\'été ?';
    echo '<span style="white-space:pre;">-'.mb_str_pad($texte, 40, ' ', STR_PAD_BOTH, 'utf-8').'-</span><br />';
    $texte = 'C\'est déjà l\'été qui s\'amène là ?';
    echo '<span style="white-space:pre;">-'.mb_str_pad($texte, 40, ' ', STR_PAD_BOTH, 'utf-8').'-</span><br />';
    ?>
    Donc : explique-nous plus clairement ce que tu cherches à faire.


    6/ Et tant qu'on y est : explique-nous d'où tu sors cette balise <text> ?
    Dernière modification par Invité ; 06/01/2017 à 09h58.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Premier point : tout ce qui dit notre ami tacheté est juste, mais comme personnellement j'ai juste pas compris la question () je suis incapable de dire si ça aide pour résoudre le problème.
    Second point : si le but du schmilblick, c'est de centrer le texte, ce serait peut-être mieux d'utiliser du CSS Comment centrer un bloc avec du CSS
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut
    Fort de vos conseils, j'ai passé ma journée à résoudre mon problème.

    La cause en venait que mon texte est récupéré d'un explode d'un textarea et, donc, chaque ligne a son retour chariot.

    Lorsque je l'affiche sous une autre forme, mon retour chariot est toujours présent, je perds donc la sensibilité de ma souris sur ce deuxième ' str_repeat('&nbsp;',$Espace_) '.

    En éliminant ce retour chariot, li devient sensible à la souris lorsque l'on passe dessus et mon ' <a Href ' s'exécute.

    J'ai maintenant mon résultat attendu.

    Je ne pense pas systématiquement à visualiser le code source: mea culpa.

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

    On n'a toujours pas compris à quoi ça sert !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 314
    Par défaut
    À partir d'une saisie d'un textarea d'un formulaire, nous créons une présentation d'entreprise qui permet de se rediriger vers elle.
    Le but étant que toute la surface, l'espace alloué au texte, soit cliquable, même les fin de lignes non complètes.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je ne vois toujors pas l'intérêt.

    Comme le dit Celira, il suffit d'un conteneur de type "block" ou "inline-block" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="..."><div>le texte</div></a>
    <div> est par défaut en display:block;.
    <p> aussi.



    N.B. On ne sait toujours pas où tu as été pêcher <text> ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/02/2008, 16h29
  2. Intégrer du PHP dans une page html
    Par toufik1986 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/01/2008, 18h55
  3. [HTML] Inclure un code php dans une page html
    Par sanddddy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/07/2007, 18h44
  4. inclure un code php dans un fichier html
    Par killer_instinct dans le forum Langage
    Réponses: 5
    Dernier message: 12/03/2007, 15h13
  5. Intégrer du php dans un code HTML ...
    Par Le Parrain dans le forum Langage
    Réponses: 15
    Dernier message: 13/04/2006, 11h29

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