HTML-символы и [] в динамическом изображении - PullRequest
0 голосов
/ 25 декабря 2009

Я делаю динамическое изображение, которое анализирует RSS-канал. Когда я выполняю синтаксический анализ в обычном режиме, он отображается точно так, как я хочу, но когда я помещаю его в изображение, появляются поля и HTML-символы, такие как & apos; на самом деле не апострофы.

Вот ссылка на мое изображение на данный момент (с полями): http://img.got -skills.net / advlog / advlogmaker.php? User = Judgment001

Halp pl0x.

Ответы [ 3 ]

2 голосов
/ 25 декабря 2009

Поля, вероятно, будут символами, которых шрифт, который вы используете, не предоставляет. Не видя ваш код, довольно сложно определить, в чем вы виноваты, но я полагаю, что вы могли бы извлечь выгоду из разумного использования следующего:

  1. http://php.net/manual/en/function.htmlspecialchars-decode.php (PHP> = 5.1)
  2. http://php.net/manual/en/function.html-entity-decode.php

Вам также может понадобиться обрезать ваши строки перед записью их в изображение, чтобы избавиться от посторонних символов табуляции и т. Д. Возможно, вам даже потребуется предоставить дополнительные символы для усечения (второй аргумент), для охвата расширенных символов, встроенных в канал RSS.

1 голос
/ 25 декабря 2009

Я бы проверил шрифт и кодировку вашего текста. Если бы вы могли предоставить больше информации (например, часть кода, который вы используете), это помогло бы.

0 голосов
/ 25 декабря 2009

Вы можете просто использовать регулярные выражения, чтобы удалить все небезопасные символы, например:

/**
 * GetFilenameSafeString()
 * 
 * @global Returns a filename that is save for the OS to save
 * @param string
 * @return string 
 */
    function GetFilenameSafeString ( $filename )
    {
        // convert spaces to an underscore
        $filename = preg_replace("/\s+/", "_", $filename);
        // remove all non qwerty characters
        $filename = preg_replace("/([^a-zA-Z0-9_!@#\$%\^&\(\)\[\]\-]+)/", "", $filename);
        return $filename;
    }
...