Поскольку в комментарии вы заявили, что не хотите перезагружать страницу и не можете использовать Ajax, PHP вам не поможет, поскольку он работает на сервере. Вместо этого вы можете достичь того, что вы хотите с помощью CSS. Посмотрите на это простое демо .
По сути, вы помещаете изображение в ссылку:
<a href="#img1">link text <img src="..."></a>
и затем укажите в своем CSS что-то вроде:
a img {display:none}
a:visited img {display:inline}
поэтому изображение скрыто по умолчанию, но как только пользователь нажимает на ссылку, изображение отображается. Если у вас есть несколько изображений на вашей странице, вы должны назначить каждой ссылке свой якорь href:
<a href="#img1">link text <img src="..."></a>
<a href="#img2">link text <img src="..."></a>
Одна потенциальная проблема с этим подходом состоит в том, что, как только пользователь обнаружил определенное изображение, это изображение будет также отображаться по умолчанию при последующих посещениях пользователем этой страницы, если он не очистит свою историю браузера. Если вы хотите предотвратить это, то есть всегда скрывать все изображения по умолчанию, то, например, ваш PHP-код может генерировать случайные якорные ссылки href.