Разбор специальных символов (ü, ä и т. Д.). Работает на localhost, а не http - PullRequest
0 голосов
/ 14 декабря 2011

Я запускаю текстовую строку для текста, чтобы определить, существует ли текстовая строка в определенном контексте (в данном случае внутри тегов заголовка h2).Я могу взять пример, и он отлично работает на локальном хосте моего приложения, использующего PHP 5.3 на Win 7 с XAMPP

Однако, когда я тестирую этот же контент на живом http-сайте, на PHP 5.3.8на HostGator я получаю ложный отрицательный результат в том же тесте.

Есть идеи?Код ниже ...

Keyword: Flirttipps für Männer

Content: <h2>Flirttipps für Männer</h2>


function doTheParse($heading='h2', $post) {
    //$content = $post->post_content;
    $content = '<h2>Flirttipps für Männer</h2>';
    $keyword = sanitize_string( trim(strtolower(getKeyword($post))) );
    $keyword = sanitize2($keyword);
    @$dom = new DOMDocument;
    @$dom->loadHTML(sanitize_string( strtolower($content) ));
    $xPath = new DOMXPath(@$dom);
    switch ($heading) {
        case "img-alt": 
            return $xPath->evaluate('boolean(//img[contains(@alt, "'.$keyword.'")])');
        default: 
            return $xPath->evaluate('boolean(/html/body//'.$heading.'[contains(.,"'.$keyword.'")])');
    }
}

function getKeyword($post) {
    global $spec;
    $myKeyword = get_post_meta($post->ID, 'my_keyword', true);
    if(isset($spec['keyword_default']) && $myKeyword == ""){$myKeyword = $post->post_title;}
    $myKeyword = htmlspecialchars_decode($myKeyword);
    return " ".$myKeyword;
}

function sanitize_string( $content ) {
    $regex = '/( [\x00-\x7F] | [\xC0-\xDF][\x80-\xBF] | [\xE0-\xEF][\x80-\xBF]{2} | [\xF0-\xF7][\x80-\xBF]{3} ) | ./x';
    return preg_replace($regex, '$1', $content);
}

function sanitize2($s) {
    $result = preg_replace("/[^\p{Latin}0-9&'-]+/u", " ", html_entity_decode($s, ENT_QUOTES));
    return $result;
}

1 Ответ

1 голос
/ 14 декабря 2011

проверить настройки локали, например, setLocale ().Многие функции работают по-разному в зависимости от установленного языкового стандарта.

...