Question

Souvent, lors de l'écriture PHP je l'ai sortie du code HTML comme ceci -

echo "<a href="../" title="link title">".$link_text."</a>";

Il est évident que ce ne sera pas analyser comme je l'ai besoin pour échapper aux guillemets doubles dans les attributs de l'élément de <a>. Y at-il une expression régulière qui rapidement faire plutôt que de me ajouter manuellement les anti-slash?

Une autre chose -. L'expression rationnelle ne doit pas échapper à des guillemets doubles en dehors de l'étiquette (par exemple où j'ai apposé la variable $link_text

Toutes les idées?

Était-ce utile?

La solution

Vous devez juste utiliser à la place les guillemets simples:

echo '<a href="../" title="link title">' . $link_text . '</a>';

Autres conseils

Solutions Je peux trouver (non sans échapper):

  • Les guillemets simples

    echo '<a href="../">' . $link_text. '</a>';
    
  • Utilisez des guillemets doubles

    echo "<a href='../'>$link_text</a>";
    
  • sprintf

    echo sprintf('<a href="../">%s</a>', $link_text);
    
  • Utilisez heredoc

    echo <<<EOF
    <a href="../">$link_text</a>
    EOF;
    
  • Utilisez le moteur de template comme Smarty

  • Quitter PHP-mode :

    ?><a href="../"><?php echo $link_text ?></a><?php // other code...
    

BTW, assurez-vous d'utiliser htmlspecialchars() sur variable $link_text, ou vous aurez un trou de sécurité XSS.

Utilisation (Cette syntaxe ne vous inquiétez pas des citations, etc.)

echo <<<EOT
<a href="../" title="link title">$link_text</a>
EOT;

Je suggère fortement l'utilisation templating au lieu d'essayer de construire des chaînes.

En PHP brut:

<a href="../" title="link title"><?php echo $link_text; ?></a>

utiliser des guillemets simples ou utilisez heredoc . Je préfère le dernier.

Je pense que vous pouvez utiliser

http://www.example.com/.../Learning-Tutorials/ACTIVE-USER-ACCOUNT/verify.php?email='.$email.'&hash='.$hash.'

"<a href="//www.example.com/.../Learning-Tutorials/ACTIVE-USER-ACCOUNT/verify.php?email="$email&hash=$hash>Click Here to Active</a>"

essayer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top