как преобразовать это в htmlcharacters: «и» - PullRequest
4 голосов
/ 03 августа 2011

У нас есть эти символы:

и

(это не обычный ", а какой-то кудрявый. Не знаю, как он называется)

Когда мы используем htmlentities(), эти символы не конвертируются, и это вызывает проблемы позже.Еще одна проблема заключается в том, что мы кодируем наши страницы в Latin-1, и мы не можем сохранить этот конкретный символ (поэтому мы не можем сделать замену и найти, потому что мы не можем фактически запрограммировать это на любую страницу).

ПРИМЕЧАНИЕ. Мы установим ENT_QUOTES, но это не повлияет на htmlentities().

ОБНОВЛЕНИЕ

Теперь я знаю, что они называются причудливыми кавычками, среди прочих, и их соответствующие html-сущности - “ и ”.Теперь возникает вопрос: почему PHP не соответствующим образом преобразует эти символы?Посмотреть пример кода:

<?php
var_dump(htmlentities($_POST['t'],ENT_QUOTES));
?>
<form action="" method="post">
<input type="t" name="t" />
<button class="button" type="submit">Send</button>
</form>

Результат:

enter image description here

Ответы [ 3 ]

7 голосов
/ 03 августа 2011

Использовать htmlentities() Он охватывает все символы, которые имеют HTML-эквивалент объекта.

htmlentities

UPDATE

Вам нужно изменить кодировку.

echo htmlentities("“jrod”", ENT_QUOTES, "Windows-1252");

Обновление 2

<?php
var_dump(htmlentities($_POST['t'],ENT_QUOTES, "Windows-1252"));
?>
<form action="" method="post">
<input type="t" name="t" />
<button class="button" type="submit">Send</button>
</form>

Используемая строка: “testing”

Var вывод дампа: string(21) "&ldquo;testing&rdquo;"

Имейте в виду, чтобы увидеть html-эквиваленты, вы должны просматривать исходный код, когда браузер отображает их соответственно.

1 голос
/ 03 августа 2011

Там называются «причудливые цитаты», «умные цитаты», «вьющиеся цитаты», «скрученные цитаты», «скручиваемые цитаты» или «изогнутые цитаты»

Left Double Quotation Mark  &#8220; “
Right Double Quotation Mark &#8221; ”

Вы можете найти эту ссылку полезной: http://www.dwheeler.com/essays/quotes-in-html.html

0 голосов
/ 14 августа 2011

Этот ответ прибывает из http://shiflett.org/blog/2005/oct/convert-smart-quotes-with-php,, который был опубликован как комментарий Tomalak Geret'kal:

Хитрость заключается в том, чтобы использовать позицию символа ascii, чтобы найти символы, на которых мы нацеливаемся, а затем конвертировать их с теми, с которыми мы можем работать.Например:

<?php
function convert_smart_quotes($string) 
{ 
    $search = array(chr(145), 
                    chr(146), 
                    chr(147), 
                    chr(148), 
                    chr(151)); 

    $replace = array("'", 
                     "'", 
                     '"', 
                     '"', 
                     '-'); 

    return str_replace($search, $replace, $string); 
} 
?>
...