Lo mejor que puedes hacer con php es generar dos imagen al subirlas, una redimensionada y la normal. y luego al mostrarlas hacer algo como esto
Código HTML:
<a href="normal.jpg"> <img src="redimensionada.jpg"/> </a>
De cualquier otra manera, lo que pides es muy sencillo de implementar en javascript, existen muchísimas librerías que hacen lo que tu necesitas, y no requieren conocimientos amplios del tema.
Un buen ejemplo podría ser
http://james.padolsey.com/javascript...in-imgpreview/