php
2010-11-03 2 views 1 likes 
1

У меня есть код загрузки в названиях некоторых фильмов в заголовке атрибута своих эскизов, этот формат так:htmlspcialchars не работает, как я ожидал бы

Исполнитель Название - «Название песни»

Я имел этот код изначально:

$return .= "' title='"; 
$return .=$video['title']; 
$return .= "'>"; 

Очевидно, что первый апостроф причинял атрибут заголовка до конца prematurley, поэтому я изменил его т o:

$return .= "' title='"; 
$return .= htmlspecialchars($video['title']); 
$return .= "'>"; 

Что не имеет никакого эффекта, все названия до сих пор заканчиваются преждевременно.

Я не понимаю метод htmlspecialchars?

ответ

6

http://php.net/manual/en/function.htmlspecialchars.php

По умолчанию htmlspecialchars() не избежать одиночные кавычки (некоторые древние поведения совместимости). Используйте htmlspecialchars($video['title'], ENT_QUOTES).

Возможно, вы также должны передать «utf-8» в качестве третьего аргумента. Я завернул это устаревшее поведение следующим образом:

function htmlencode($str, $nl2br = false, $nbsp = false) 
    { 
    $str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8', true); 
    if ($nbsp) 
     { 
     $str = str_replace(" ", ' ', $str); 
     } 
    if ($nl2br) 
     { 
     $str = nl2bruni($str); 
     } 
    return $str; 
    } 

/** 
    PHP's built-in nl2br() only works with LF newlines. This version also works with CR+LF, CR and RS 
*/ 
function nl2bruni($str) 
    { 
    return preg_replace('{\\r?\\n|\\r|\\x1e}', '<br />', $str); 
    } 
Смежные вопросы