PHP:获取编码的html实体

时间:2015-11-07 01:53:29

标签: php html-entities

我正在尝试获取UTF-8字符串的html实体,
示例: example.com/search?q=مرحبا

<?php
    echo htmlentities($_GET['q']);
?>

我得到了:

مرحبا0مرحبا

这是UTF-8文本而不是html实体, 我需要的是:

&#1605;&#1585;&#1581;&#1576;&#1575;

我尝试了urldecodehtmlentities功能!

2 个答案:

答案 0 :(得分:1)

将此代码添加到文件的开头:

header('Content-Type: text/html; charset=utf-8');

浏览器需要知道它是UTF-8。这个标签也可以在头部进行形式化。

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

答案 1 :(得分:0)

我认为你可以通过获取字符串中的每个字符并获得其值来解决它 来自Mark Baker answer vartec answer ,您可以获得:

<?php
    $chrArray = preg_split('//u',$_GET['q'], -1, PREG_SPLIT_NO_EMPTY);
    $htmlEntities = "";
    foreach ($chrArray as $chr) {
        $htmlEntities .= '&#'._uniord($chr).';';
    }
    echo $htmlEntities;
?>

我没有测试过。