Ошибка синтаксиса PHP? - создать многомерный массив, использовать цикл foreach - выводить HTML - PullRequest
0 голосов
/ 22 ноября 2011

ОТВЕТ НА ВОПРОС:

После того, как я возился с несколькими вещами, возникла проблема с запятой в и последнем элементе моего массива, а также с неправильным вводом пути к источнику изображения.

Все отлично работает. Меня не перестает удивлять то, как простая синтаксическая ошибка может выбить все из строя.

Спасибо Джонатан и Тмсимонт! Сочетание твоих ответов решило мою проблему.

Пора получить хороший PHP-отладчик, наверное, Netbeans, потому что Dreamweaver просто не подходит мне, и я недостаточно разбираюсь в том, чтобы писать код YET!

EDIT:

Я попытаюсь прояснить ситуацию с моим источником вывода:

<body>
<div id="main">
<div class="container">
<div class="sponsorInner">
<a href="'.$company[1].'">
<img src="img/sponsors/'.$company[0].'.png">
</a>
</div>
</div>
'; } ?&gt;
</div>
</body>

3 вещи не работают: мне нужен первый div с золотым классом для рендеринга и $ из массива, чтобы заполнить ссылку на изображение и путь.

ОРИГИНАЛЬНЫЙ ВОПРОС: Я пытаюсь создать несколько расположений div на странице, используя многомерный массив и цикл foreach, чтобы заполнить содержимое div изображением, мнемонически названным в папке относительного пути, и изображением, которое будет гиперссылкой.

Мой вывод не отображает первый правильно и не заполняет массив $.

Мне это кажется правильным, я пропускаю какой-то тип escape или синтаксис?

    <body>

    <?php   

        $sponsor = array(
            array('Allstate','http://www.allstateagencies.com/'),
            array('Arrowhead','http://www.arrowheadwater.com/'),
        );
    ?>  

<div id="main">

    <div class="container">     

        <?php           

            foreach($sponsor as $company)
            {
                echo '
                    <div class="gold">
                        <div class="sponsorInner">
                            <a href="'.$company[1].'"><img src="img/sponsors/'.$company[0].'.png"/></a>
                        </div>
                    </div>
                ';
            }
        ?>


    </div><!--.container-->

</div><!--#main-->

</body>

Ответы [ 3 ]

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

Общее предположение ... так как это все, что я могу сделать с помощью того, как вы сформулировали свой вопрос ... но если ваша проблема связана с выводом изображения, попробуйте поставить "/" в начале атрибута src изображения :

  <a href="'.$company[1].'"><img src="/img/sponsors/'.$company[0].'.png"/></a>

таким образом, браузер ищет каталог img из базы сайта, а не из любого подкаталога, в котором вы находитесь.

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

Почему бы не сделать ваш массив таким образом

$sponsor = array(
  'Allstate' => 'http://www.allstateagencies.com/',
  'Arrowhead' => 'http://www.arrowheadwater.com/'
);

и позже

<?php
foreach($sponsor as $company_name => $company_site)
{
?>
  <div class="gold">
    <div class="sponsorInner">
      <a href="<?php echo $company_site ?>"><img src="img/sponsors/<?php echo $company_name ?>.png"/></a>
    </div>
  </div>
<?php
}
?>

Редактировать

Помните, ваше имя файла чувствительно к регистру. Поэтому .png понадобятся заглавные буквы в их имени. Вы можете добавить strtolower() к $company_name, если вам нужны строчные буквы.

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

У вас есть запятая в конце этой строки, которая вам не нужна:

array('Arrowhead','http://www.arrowheadwater.com/'),

Пожалуйста, попробуйте выполнить базовую отладку перед публикацией.

...