Основывать оператор if else на том, из какой папки находится изображение на сервере? - PullRequest
0 голосов
/ 12 марта 2012

Я использовал php, чтобы открыть и вывести список файлов в папке, но я бы хотел как-то превратить его в оператор if else, чтобы, если он из папки «темного» фона, отображался белый логотип и если он из «светлой» фоновой папки, будет отображаться черный логотип.

<?php
//path to directory to open
$directory = "backgrounds/dark";
$dir_handle = @opendir($directory) or die("Unable to open folder");

while(false !== ($file = readdir($dir_handle)))
{
  if($file != '.' && $file != '..') 
  {
    echo "{image : 'http://occa-art.com/backgrounds/dark/".$file."'}, ";                      
  }
}
closedir($dir_handle);
?>

Используется формат {image: 'http://'}, поскольку изображения перечислены в скрипте фонового формата Supersized.

--- EDIT ---

Может быть что-то вроде этого (не проверено), чтобы определить, из какой папки находится фоновое изображение:

<?php
$doc = new DOMDocument();
$doc->loadHTML($htmlAsString);
$xpath = new DOMXPath($doc);
$nodeList = $xpath->query('//img[@class="bg"]/@src');
for ($i = 0; $i < $nodeList->length; $i++) {
    # Xpath query for attributes gives a NodeList containing DOMAttr objects.
    # http://php.net/manual/en/class.domattr.php
    echo $nodeList->item($i)->value . "<br/>\n";
}

$bg_url = $nodeList->item($i)->value; // not sure about this?
$parent = dirname("$bg_url");
if ($parent == 'dark') { ?>
    <img src="<?php bloginfo('template_url'); ?>/images/OCCAIndexHeaderwhite.png" alt="OCCA logo" />
<?php } else { ?>
    <img src="<?php bloginfo('template_url'); ?>/images/OCCAIndexHeaderblack.png" alt="OCCA logo" />
<?php } ?>

найден использованный код здесь и здесь

...