Сравнивая 2 строки - PullRequest
       2

Сравнивая 2 строки

2 голосов
/ 07 ноября 2011

У меня есть скрипт php, который не работает правильно.

когда я проверяю его с помощью strcmp, он возвращает 0 в нужное время, но оператор if все еще возвращает false.

Содержимое keys.php

<?php $cat_array = array("All Deals","Arts & Crafts","Automotive","Dental","Education & Training","Entertainment","Fashion","Fitness & Health","Floral","Fun & Adventure","Home & Garden","Pets","Photography","Restaurants","Spa & Beauty","Sports","Subscriptions","Tours & Attractions","Trade Shows","Travel","Workshops");
$cat_nav_array = array("alldeals","arts_crafts","automotive","dental","education_training","entertainment","fashion","fitness_health","floral","fun_adventure","home_garden","pets","photography","restaurants","spa_beauty","sports","subscriptions","tours_attractions","tradeshows","travel","workshops");

?>

php код для главной страницы

 <?php 
        require_once("keywords/keywords.php");
        $count = 0;
        $category = $_GET['category'];
        foreach ($cat_array as $link)
        {
            $count++;
        }
        for ($i = 0; $i <= $count; $i++)
        {
            $link = $cat_nav_array{$i};
            $text = $cat_array{$i};

            if ($category === $link) 
            {
            ?>
                <li><a class="ch_selected" href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php 
            } 
            else
            {?>
                <li><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link ?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php
            }
        } ?>

Рабочий код:

    <?php 
        require_once("keywords/keywords.php");
        $count = 0;
        $category = strtolower($_GET['category']);
        foreach ($cat_array as $link)
        {
            $count++;
        }
        for ($i = 0; $i <= $count; $i++)
        {
            $link = $cat_nav_array{$i};
            $text = $cat_array{$i};

            $same = strcmp($link, $category);

            if ($same != 0) 
            {
            ?>
                <li><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php 
            } 
            else
            {?>
                <li class="ch_selected"><a href="<?php echo $_SERVER['HTTP_HOST']?>/chunky/others/?category=<?php echo $link ?>" title="View all Deals from <?php echo $text ?>"><?php echo $text?></a></li>
            <?php
            }
        } ?>

Ответы [ 3 ]

2 голосов
/ 07 ноября 2011

Сравните с if ($catagory === $link).

0 голосов
/ 07 ноября 2011

Я могу быть далеко от ответа, но если я правильно помню, это не способ для сравнения строк. Пожалуйста, обратитесь к этому: http://www.phpcatalyst.com/php-compare-strings.php

0 голосов
/ 07 ноября 2011

попробуйте сделать var_dump($link, $catagory) прямо перед строкой if и посмотреть, действительно ли эти две переменные совпадают.

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