【问题标题】:PHP if then else for all URL starting with this domain else do something elsePHP if then else 对以此域开头的所有 URL else 做其他事情
【发布时间】:2015-01-30 09:20:17
【问题描述】:

我想要一个 php 中的例子,如果然后是 else,那就是

假设一个变量的值包含 URL

所以

如果 URL 以 cetrain URL www.blabla.com/... 开头,那么做一些事情

其他

如果 URL 以 www.whateverurl.com/... 开头,则执行其他操作,,

我希望它足够清楚伙计们,请帮助,

我的嵌入 HTML 的 PHP 代码就是这样。我怎样才能避免所有情况,只有一个 if 和一个 else 而没有elseif

<?php if ($item->getPrimaryLink()) : ?></br>

   <?php if ($item->getPrimaryLink()->getUrl() == "http://www.blabla.com/index.php/article?id=3200") : ?></br>                

         <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="readon"><span><?php rc_e('READ_MORE'); ?></span></a>

        <?php elseif ($item->getPrimaryLink()->getUrl() == "http://www.blabla.com/index.php/article?id=1508") : ?></br>

         <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="readon"><span><?php rc_e('READ_MORE'); ?></span></a>

        <?php elseif ($item->getPrimaryLink()->getUrl() == "http://www.blabla.com/index.php/article?id=1840") : ?></br>

         <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="readon"><span><?php rc_e('READ_MORE'); ?></span></a> 

        <?php elseif ($item->getPrimaryLink()->getUrl() == "http://www.blabla.com/index.php/article?id=2541") : ?></br>

         <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="readon"><span><?php rc_e('READ_MORE'); ?></span></a>       

 <?php else : ?></br>

        <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="modal" rel="{size: {x: 1024, y: 550}, handler:'iframe'}"><span><?php rc_e('READ_MORE'); ?></span></a>           

<?php endif; ?>

谢谢大家,任何想法或建议将不胜感激。

【问题讨论】:

  • 我无法理解你的问题,你到底在期待什么
  • 我认为使用 joomla 你可以使用 'JRequest::getVar('id');'获取 $_GET['id'] 然后使用多条件 'if' 语句。
  • 谢谢wayzz的回答
  • 对不起,Nes,但所有人都对我的问题做出了正确的回应,我认为这个问题已经很清楚了,这就是为什么这么多人回答的原因,,,:)

标签: php html if-statement joomla


【解决方案1】:

您可以使用switch() 声明。

    switch ($item->getPrimaryLink()->getUrl()) {
        case "http://www.blabla.com/index.php/article?id=3200":
            echo "<a href=". $item->getPrimaryLink()->getUrl()." class='readon'><span>". rc_e('READ_MORE'). "</span></a>";
            break;
        case "http://www.blabla.com/index.php/article?id=1508":
            echo "<a href=". $item->getPrimaryLink()->getUrl()." class='readon'><span>". rc_e('READ_MORE')."</span></a>";
            break;
        ...
    }

http://php.net/manual/en/control-structures.switch.php

【讨论】:

  • 感谢 wayzz 的回复,但这对我没有任何影响,我只是不想使用这么多案例,,当一切都以 www.blabla.com 开头时,行动总是相同...对于所有其余的 url.. 是另一个动作,,,,开关与 if -elseif-else 相同,,,我只想拥有 if-else .....
  • 我已经发布了另一个答案,看看它是否正确。请原谅我如果被误认为我对 Joomla 不熟悉。如果不正确请告诉我,我会删除答案。
  • 再次感谢 wayzz 的努力和快速响应,,,是的,它是一种可行的方法,,,,但不幸的是,我正在寻找一个无需返回的全球解决方案更多添加 id 的情况,我正在寻找一个语句,它可以捕获从某个 www.blabla,com/... 开始的所有 url,无论是 id ,,,,只是为了查看主域... .我希望你理解,,,,并再次感谢你的回答,,,
  • 我能知道 $this->getPrimaryLink() 和 $this->getPrimaryLink()->getUrl() 打印什么吗?
  • 是的,它在支持的,,, , 中获取在 RokSprocket 模块中分配的 url,所以如果它以 blabla.com.... 开头,则执行一项操作,否则如果它以 @ 开头987654323@....做点别的...
【解决方案2】:

使用explode() 函数获取您的网址的第一部分。

<?php 

    $url= $item->getPrimaryLink(); // www.blabla.com/index.php?id=123 <- The slash would be your divider in this case.
    $url_ex= explode("/", $url); 

    // So now you have
    //$url_ex[0] = 'www.blabla.com';
    //$url_ex[1] = 'index.php?id=123';
?>



 <?php if ($item->getPrimaryLink()) : ?></br>
        <?php if ($url_ex[0] == 'www.blabla.com'){

            echo "<a href=". $item->getPrimaryLink()->getUrl()." class='readon'><span>". rc_e('READ_MORE'). "</span></a>";
    }
 <?php else : ?></br>

        <a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" class="modal" rel="{size: {x: 1024, y: 550}, handler:'iframe'}"><span><?php rc_e('READ_MORE'); ?></span></a>           

<?php endif; ?>

我认为你可以使用类似的东西。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多