如果不等于

时间:2012-03-24 12:19:23

标签: php if-statement

我有一个Drupal 7 网站。我想要的是以下内容: - 如果用户位于名为'fotos(-20xx)'或'filmpjes(-20xx)'的页面上(括号内的内容是可选的,x是0-9的数字),则不会发生任何事情 - 如果用户位于其他页面上,则会在rel

中添加新的$attributes atriibute

这就是我的想法:

    $fotos = array('/fotos', '/fotos-2004', '/fotos-2005', '/fotos-2006', '/fotos-2007', '/fotos-2008', '/fotos-2009', '/fotos-2010', '/fotos-2011', '/filmpjes', '/filmpjes-2007', '/filmpjes-2009', '/filmpjes-2010', '/filmpjes-2011'); 
    $currentpage = $_SERVER['REQUEST_URI'];  

    foreach ($fotos as $foto) {if($foto != $currentpage) {$attributes['rel'] = 'shadowbox';}}

这有两个问题:

  1. 它不起作用
  2. 每年我都要加一个新的一年(例如/ fotos-2013)
  3. 有没有人知道如何用简短的片段写这个?而且,更重要的是,有人看到错误吗?

3 个答案:

答案 0 :(得分:1)

我认为您的要求是在数组中不存在uri时添加变量。

    $base = array('/fotos','/filmpjes');
    $baseFotos = '/fotos-';
    $baseFilm = '/filmpjes-';
    $i = '2004'; $j = date('Y');
    while ($i <= $j) {
      $fotos[] = $baseFotos.$i;
      $film [] = $baseFilm.$i;
      $i++;
    }
    $result = array_merge($base,$fotos,$film);

    // check if base uri in array.
    if (!in_array($_SERVER['REQUEST_URI'], $result)) {
        $attributes['rel'] = 'shadowbox';
    }

答案 1 :(得分:0)

要解决多年来的问题,您可以像这样创建$fotos

<?php

$fixed = '/fotos';
$time = strtotime('now');
$year_start = '2004';
$year_end = date('Y', $time);
$fotos = array($fixed);
for( ; $year_start <= $year_end; $year_start++){
   $fotos[] = "$fixed-$year_start";
}

我不明白代码的其他代码段应该做什么,但是每次都要覆盖相同的元素!无论如何你都在谈论$attribute但写了$attributes

答案 2 :(得分:0)

我只想到这一行

<?php $currentpage = $_SERVER['REQUEST_URI']; ?>

也许这可以改为

<?php $currentpage = drupal_get_path_alias($_GET['q']); ?>