php if语句似乎比较不正确

toe95027  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(385)

好的,我正在从数据库中提取从以前的表单保存的字体。我的问题是,即使我100%地复制来自bodyfont的echo,它也不会比较,只会掉到else错误语句。到底是什么原因造成的?我有“和”这个事实吗,?任何帮助都会很棒(我必须使用全名arial,“helvetica neue”,helvetica,sans-serif等我正在做的事情。
注:
仅供参考-我有我的连接和所有不是给我一个问题的代码,我可以从数据库中拉,也使用相同的if语句来处理标题字体,但它只是使用单词no,或“in names”。

<?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 用额外的 &quot; 在里面。我现在必须想办法把它去掉。
为了解决这个问题,我按照下面格鲁皮克劳顿的建议做了,并使用了html\u entity\u 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...";
    }
 ?>
8fq7wneg

8fq7wneg1#

似乎您已将html编码的值插入到数据库中。别这样。
你应该在输出而不是输入上使用html编码。

相关问题