2013-04-16 6 views
-2

У меня есть веб-сайт, который я делаю как школьный проект, и кажется, что я вскочил во что-то слишком глубокое. Я использую PHP для создания страницы для каждого объекта массива. На каждой странице я хочу персонализировать содержимое в соответствии со страницей. Например, у меня есть страница, созданная с именем Darryl, и она будет содержать все мои изображения. Будут созданы другие страницы, и содержимое этих страниц будет создаваться динамически в зависимости от страницы.Вызов функции из переменной (PHP)

То, что я пытаюсь сделать, заключается в изменении img src с использованием PHP и использовании счетчика для создания разных изображений. Мне это невероятно сложно объяснить.

У меня есть эта строка HTML кода, который содержит PHP (который определяет, какие изображения получают показанный:.

<td><img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br><?php print $pageName; ?></td> 

Часть я имею вопрос с это «печать $ imgSrc;» часть Это . область, где мой PHP создает путь Src Он использует эту переменную $ imgSrc, чтобы получить правильный путь

эта переменная:.

$imgSrc = "images"."/".$pageName."/".counter(); 

Который пишет

+0

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

+0

Какой выход вы ищете в HTML? image1.jpg, image2.jpg, image3.jpg ....? – Axel

+0

Я думаю, что это не очень хорошая идея для каждой страницы для каждого объекта массива. Вот почему мы используем PHP, поэтому у нас может быть одна, одна страница, «чтобы управлять ими всеми». – Voitcus

ответ

1

Похоже, вы сбиты с толку о том, что такое функция или, возможно, когда она выполняется. Если все это код, который вы имеете на странице:

$imgSrc = "images"."/".$pageName."/".counter(); 
<td> 
    <img style="width:11em;" class="magnify" src="<?php print $imgSrc; ?>"/><br> 
    <?php print $pageName; ?> 
</td> 

$imgSrc Тогда только когда-либо написанный на один раз. Так что любой counter() делает, это только один раз. Вы можете обернуть все это в цикл for и уничтожить вызов counter(). Можно удалить локальную переменную $imageSrc и сделать атрибут, определенный на лету, например, так:

<td> 
    <img style="width:11em;" class="magnify" src="<?php print "images"."/".$pageName."/".counter(); ?>"/><br> 
    <?php print $pageName; ?> 
</td> 

Тогда, если функция counter() является состоянием сама (как, она возвращает другое значение каждый раз, когда вы называете его) , вы все настроены.

Вы можете сделать с сохранением состояния функции, как следующее:

$counter_var = 0; 

function counter() { 
    global $counter_var; 
    return $counter_var++; 
} 

Но Глобал неодобрением, потому что создать трудно проследить побочные эффекты (и другие причины). Большинство людей сказали бы вам использовать цикл for. Я только упоминаю об этом, потому что он выглядит ближе к тому, что вы пытались сделать в своем исходном коде.

+0

Мне очень нравится этот ответ, это помогло мне понять, почему моя проблема происходит. Я верю, что могу попробовать и исправить это сейчас. –

+0

О, важно отметить, что я полностью пропустил (реквизит для Rafee): вам определенно нужно расширение файла на вашем источнике изображения. Если у ваших изображений нет расширения на диске, вероятность того, что ваш веб-сервер не будет обслуживать их с соответствующим заголовком типа mime. PS рад, что я могу помочь и жаль, что редактор подал вам головную боль. –

Смежные вопросы