PHP, если утверждение, кажется, не сравнивается правильно - PullRequest
0 голосов
/ 05 октября 2018

Хорошо, поэтому я проверяю, какой тип шрифта используется из моей базы данных, сохраненной из предыдущей формы.Моя проблема в том, что даже когда я на 100% повторяю то, что я повторяю, пришедший от bodyFont, он не будет сравниваться и просто упадет до оператора ошибки else.Что в мире вызывает это?Может ли это быть из-за того, что у меня есть «и?» Любая помощь будет потрясающей. (Я должен использовать полное имя Arial, «Helvetica Neue», Helvetica, без засечек и т. Д. Для того, что я делаю.

ПРИМЕЧАНИЕ:

ПРОСТО FYI - у меня есть соединение, и все, что не является кодом, вызывает у меня проблему, я могу извлечь из базы данных и также использовать тот же оператор if для работы со шрифтом заголовка, но он просто использует слованет, или "в именах.

 <?php
    echo "$bodyFont";
    if ($bodyFont == 'Arial, "Helvetica Neue", Helvetica, sans-serif') {
            echo "
            1
            ";
        } elseif ($bodyFont == '"Times New Roman", Times, serif') {
            echo "
            2
            ";
        } else {
            echo "<br />error";
        }
?>

Ran Var_Dump and got the following:
string(56) "Arial, "Helvetica Neue", Helvetica, sans-serif" - PULLED FROM DATABASE
string(46) "Arial, "Helvetica Neue", Helvetica, sans-serif" - PULLED FROM VAR

56 и 46 ... Как бы это исправить?

<?php
$one = 'Arial, "Helvetica Neue", Helvetica, sans-serif';
$bodyFontstrip = strip_tags($bodyFont);

var_dump($bodyFont);
echo "<br />";
var_dump($one);


    if ($bodyFontstrip == $one) {
            echo "Arial";
        }  else {
            echo "<br />error";
        }
?>

ОК. Я вижу, что происходит: $bodyFont, что яИзвлечение из сервера получается как Arial, &quot;Helvetica Neue&quot;, Helvetica, sans-serif с дополнительным * 1013. * Я должен найти способ удалить это сейчас.

Чтобы исправить, я сделал так, как предложил GrumpyCrouton ниже и использовал html_entity_decode ($ bodyFont).

ФИКСИРОВАННЫЙ РАБОЧИЙ КОД:

<?php
$one = 'Arial, "Helvetica Neue", Helvetica, sans-serif';
$two = '"Times New Roman", Times, serif';
$bodyFontclean = html_entity_decode($bodyFont);

var_dump($bodyFont);
echo "<br />";
var_dump($one);
echo "<br />";
var_dump($two);


if ($bodyFontclean == $one) {
        echo "Arial";
    }  elseif ($bodyFontclean == $two){
        echo "Times";
    } else {
        echo "error...";
    }
 ?>

1 Ответ

0 голосов
/ 05 октября 2018

Похоже, вы вставили закодированные значения HTML в вашу базу данных.Не делайте этого.

Вы должны быть HTML-кодировщиком в OUTPUT, а не INPUT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...