0

“$”的转义字符是

$

是否有本机 php 函数可以从任何类型的输入中转换和获取转义字符?

htmlspecialchars 转换正常,但不适用于所有输入字符串......它不适用于“$”

供参考 - http://www.theukwebdesigncompany.com/articles/entity-escape-characters.php

编辑:

echo htmlentities("$"); //output "$", not "$"

echo htmlspecialchars("$"); //output "$", not "$"
4

3 回答 3

0

在手册用户注释中找到,经过测试似乎适用于我的所有测试。

<?php
function superentities( $str ){
    // get rid of existing entities else double-escape
    $str = html_entity_decode(stripslashes($str),ENT_QUOTES,'UTF-8');
    $ar = preg_split('/(?<!^)(?!$)/u', $str );  // return array of every multi-byte character
    foreach ($ar as $c){
        $o = ord($c);
        if ( (strlen($c) > 1) || /* multi-byte [unicode] */
            ($o <32 || $o > 126) || /* <- control / latin weirdos -> */
            ($o >33 && $o < 40) ||/* quotes + ambersand */
            ($o >59 && $o < 63) /* html */
        ) {
            // convert to numeric entity
            $c = mb_encode_numericentity($c,array (0x0, 0xffff, 0, 0xffff), 'UTF-8');
        }
        $str2 .= $c;
    }
    return $str2;
}

echo superentities('$'); //&#36;

?>
于 2013-09-18T22:11:21.003 回答
-1

尝试使用 php.htmlspecialchars: htmlspecialchars

于 2013-09-18T22:03:01.373 回答
-1

使用 htmlentities 转换所有可能的字符 -阅读更多

于 2013-09-18T22:04:03.187 回答