PHP.mk документација

get_html_translation_table

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.get-html-translation-table.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.get-html-translation-table.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
get_html_translation_table

Референца за `function.get-html-translation-table.php` со подобрена типографија и навигација.

function.get-html-translation-table.php

get_html_translation_table

(PHP 4, PHP 5, PHP 7, PHP 8)

get_html_translation_tableВраќа табела за превод што се користи од htmlspecialchars() and htmlentities()

= NULL

get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags Претвори ги сите применливи знаци во HTML ентитети, string $encoding = "UTF-8"): array

get_html_translation_table() ќе ја врати табелата за превод што се користи внатрешно за htmlspecialchars() and htmlentities().

Забелешка:

Специјалните знаци можат да бидат кодирани на неколку начини. На пр. " може да биде кодирано како ", " or &#x22. get_html_translation_table() враќа само формата што се користи од htmlspecialchars() and htmlentities().

Параметри

table

Која табела да се врати. Или HTML_ENTITIES or HTML_SPECIALCHARS.

flags

Битови маска од еден или повеќе од следниве знаменца, кои специфицираат кои наводници ќе ги содржи табелата, како и за каков тип документ е табелата. Стандардно е ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Маска од еден или повеќе од следниве знаменца, кои специфицираат како да се постапува со наводници, невалидни низи на единици и типот на документот што се користи. Стандардно е flags constants
Достапно = NULL
ENT_COMPAT Табелата ќе содржи ентитети за двојни наводници, но не и за единечни наводници.
ENT_QUOTES Табелата ќе содржи ентитети и за двојни и за единечни наводници.
ENT_NOQUOTES Табелата нема да содржи ентитети ниту за единечни ниту за двојни наводници.
ENT_SUBSTITUTE (поголемо од)
ENT_HTML401 Табела за HTML 4.01.
ENT_XML1 Табела за XML 1.
ENT_XHTML Табела за XHTML.
ENT_HTML5 Табела за HTML 5.
encoding

Кодирање за употреба. Ако е изоставено, стандардната вредност за овој аргумент е UTF-8.

опцијата за конфигурација може да биде погрешно поставена за дадениот влез.

Поддржани се следните множества на знаци:
Поддржани множества на знаци Алијаси = NULL
ISO-8859-1 ISO8859-1 Множество знаци
ISO-8859-5 ISO8859-5 Западно-европски, Latin-1.
ISO-8859-15 ISO8859-15 Малубројно кирилично множество знаци (латиница/кирилица).
UTF-8     Западно-европски, Latin-9. Додава знак за евро, француски и фински букви што недостасуваат во Latin-1 (ISO-8859-1).
cp866 ASCII компатибилен повеќебајтен 8-битен Unicode. ibm866, 866
cp1251 DOS-специфично кирилично множество знаци. Windows-1251, win-1251, 1251
cp1252 Windows-специфично кирилично множество знаци. Windows-1252, 1252
KOI8-R Windows специфично множество знаци за Западна Европа. Russian.
BIG5 950 Традиционален кинески, главно се користи во Тајван.
GB2312 936 Поедноставен кинески, национален стандарден сет на знаци.
BIG5-HKSCS     Big5 со хонгконшки екстензии, традиционален кинески.
Shift_JIS Постапувај со кодот како HTML 5. Јапонски
EUC-JP SJIS, SJIS-win, cp932, 932 Јапонски
MacRoman     Комплет за кодирање што се користеше од Mac OS.
''     Празен стринг активира детекција од скриптно кодирање (Zend мултибајт), default_charset и тековниот локал (види nl_langinfo() and setlocale()), по овој редослед. Не се препорачува.

Забелешка: Други комплети за кодирање не се препознаваат. Ќе се користи стандардното кодирање и ќе се емитува предупредување.

Вратени вредности

Враќа табела за превод како низа, со оригиналните знаци како клучеви и ентитети како вредности.

Дневник на промени

Верзија = NULL
8.1.0 flags Пример #2 Употреба на ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Примери

Пример #1 Пример за табела за превод

<?php
var_dump
(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

Горниот пример ќе прикаже нешто слично на:

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Види Исто така

  • htmlspecialchars() - Конвертирај специјални знаци во HTML ентитети
  • htmlentities() ) туку ASCII код 160 (0xa0) во стандардното кодирање ISO 8859-1.
  • html_entity_decode() - Конвертирај HTML ентитети во нивните соодветни знаци

Белешки од корисници 11 белешки

[email protected]
пред 14 години
The fact that MS-word and some other sources use CP-1252, and that it is so close to Latin1 ('ISO-8859-1') causes a lot of confusion. What confused me the most was finding that mySQL uses CP-1252 by default.

You may run into trouble if you find yourself tempted to do something like this:
<?php
    $trans[chr(149)] = '&bull;';    // Bullet
    $trans[chr(150)] = '&ndash;';    // En Dash
    $trans[chr(151)] = '&mdash;';    // Em Dash
    $trans[chr(152)] = '&tilde;';    // Small Tilde
    $trans[chr(153)] = '&trade;';    // Trade Mark Sign
?>

Don't do it. DON'T DO IT!

You can use:
<?php
    $translationTable = get_html_translation_table(HTML_ENTITIES, ENT_NOQUOTES, 'WINDOWS-1252');
?>

or just convert directly:
<?php
    $output = htmlentities($input, ENT_NOQUOTES, 'WINDOWS-1252');
?>

But your web page is probably encoded UTF-8, and you probably don't really want CP-1252 text flying around, so fix the character encoding first:
<?php
    $output = mb_convert_encoding($input, 'UTF-8', 'WINDOWS-1252');
    $ouput = htmlentities($output);
?>
кевин на cwsmailbox точка xom
пред 15 години
Be careful using get_html_translation_table() in a loop, as it's very slow.
Кенет Кин Лум
пред 17 години
to display the mapping on a webpage no matter what the server encoding is, this can be used

  echo "<pre>\n";
  echo htmlentities(print_r((get_html_translation_table(HTML_SPECIALCHARS)), true));
  echo htmlentities(print_r((get_html_translation_table(HTML_ENTITIES)), true));

since get_html_translation_table() actually gives the special chars in iso-8859-1 (Latin-1) encoding, so to see the tables correctly using

  print_r(get_html_translation_table(HTML_ENTITIES));

your server needs to give a HTTP header as iso-8859-1, unless you use header() or manually set the browser's encoding setting to iso-8859-1.  And you need to view the source of the page to see the mapping.  (except English version of IE 7 outputs the page source as iso-8859-1 anyway).
дирк на hartmann точка net
figroc at gmail dot com
get_html_translation_table
It works only with the first 256 Codepositions.
For Higher Positions, for Example &#1092;
(a kyrillic Letter) it shows the same.
Жером Жаглале
19 години пред
htmlentities includes htmlspecialchars, so here's how to convert an UTF-8 string :
htmlentities($string, ENT_QUOTES, 'UTF-8');
иаин (дух) workingsoftware.com.au
пред 18 години
I wrote a quick little function for converting something like '&middot;' into '&#183;':

$to_convert = '&middot;'; 
$table = get_html_translation_table(HTML_ENTITIES);
$equiv = '&#'.ord(array_search($to_convert,$table)).';';
Патрик nospam на nospam mesopia точка com
20 години пред
Not sure what's going on here but I've run into a problem that others might face as well...

<?php

$translations = array_flip(get_html_translation_table(HTML_ENTITIES,ENT_QUOTES));

?>

returns the single quote ' as being equal to &#39; while

<?php

$translatedString = htmlentities($string,ENT_QUOTES);

?>
returns it as being equal to &#039;

I've had to do a specific string replacement for the time being... Not sure if it's an issue with the function or the array manipulation.

-Pat
Маурицио Силиани на trident точка it
пред 18 години
If you have troubles (like me) getting data from ISO-8859-1 encoded forms where user copy and paste from word, this routine could be useful.
It adds to the standard get_html_translation_table the codes of the characters usually M$ Word replacs into typed text.
Otherwise those characters would never be displayed correctly in html output.

function get_html_translation_table_CP1252() {
    $trans = get_html_translation_table(HTML_ENTITIES);
    $trans[chr(130)] = '&sbquo;';    // Single Low-9 Quotation Mark
    $trans[chr(131)] = '&fnof;';    // Latin Small Letter F With Hook
    $trans[chr(132)] = '&bdquo;';    // Double Low-9 Quotation Mark
    $trans[chr(133)] = '&hellip;';    // Horizontal Ellipsis
    $trans[chr(134)] = '&dagger;';    // Dagger
    $trans[chr(135)] = '&Dagger;';    // Double Dagger
    $trans[chr(136)] = '&circ;';    // Modifier Letter Circumflex Accent
    $trans[chr(137)] = '&permil;';    // Per Mille Sign
    $trans[chr(138)] = '&Scaron;';    // Latin Capital Letter S With Caron
    $trans[chr(139)] = '&lsaquo;';    // Single Left-Pointing Angle Quotation Mark
    $trans[chr(140)] = '&OElig;    ';    // Latin Capital Ligature OE
    $trans[chr(145)] = '&lsquo;';    // Left Single Quotation Mark
    $trans[chr(146)] = '&rsquo;';    // Right Single Quotation Mark
    $trans[chr(147)] = '&ldquo;';    // Left Double Quotation Mark
    $trans[chr(148)] = '&rdquo;';    // Right Double Quotation Mark
    $trans[chr(149)] = '&bull;';    // Bullet
    $trans[chr(150)] = '&ndash;';    // En Dash
    $trans[chr(151)] = '&mdash;';    // Em Dash
    $trans[chr(152)] = '&tilde;';    // Small Tilde
    $trans[chr(153)] = '&trade;';    // Trade Mark Sign
    $trans[chr(154)] = '&scaron;';    // Latin Small Letter S With Caron
    $trans[chr(155)] = '&rsaquo;';    // Single Right-Pointing Angle Quotation Mark
    $trans[chr(156)] = '&oelig;';    // Latin Small Ligature OE
    $trans[chr(159)] = '&Yuml;';    // Latin Capital Letter Y With Diaeresis
    ksort($trans);
    return $trans;
}
кумар на chicagomodular.com
пред 23 години
without heavy scientific analysis, this seems to work as a quick fix to making text originating from a Microsoft Word document display as HTML:

<?php
function DoHTMLEntities ($string)
    {
        $trans_tbl = get_html_translation_table (HTML_ENTITIES);
        
        // MS Word strangeness.. 
        // smart single/ double quotes:
        $trans_tbl[chr(145)] = '\''; 
        $trans_tbl[chr(146)] = '\''; 
        $trans_tbl[chr(147)] = '&quot;'; 
        $trans_tbl[chr(148)] = '&quot;'; 

                // Acute 'e'
        $trans_tbl[chr(142)] = '&eacute;';
        
        return strtr ($string, $trans_tbl);
    }
?>
Алекс Минкоф
20 години пред
If you want to display special HTML entities in a web browser, you can use the following code:

<?
$entities = get_html_translation_table(HTML_ENTITIES);
foreach ($entities as $entity) {
    $new_entities[$entity] = htmlspecialchars($entity);
}
echo "<pre>";
print_r($new_entities);
echo "</pre>";
?>

If you don't, the key name of each element will appear to be the same as the element content itself, making it look mighty stupid. ;)
кевин_бро на hostedstuff точка com
пред 23 години
Alans version didn't seem to work right. If you're having the same problem consider using this slightly modified version instead:

function unhtmlentities ($string)  {
   $trans_tbl = get_html_translation_table (HTML_ENTITIES);
   $trans_tbl = array_flip ($trans_tbl);
   $ret = strtr ($string, $trans_tbl);
   return preg_replace('/&#(\d+);/me', 
      "chr('\\1')",$ret);
}
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.