Просмотр файла - это и есть его скачивание. А чтобы разрешить просмотр, но запретить скачивание, нужно пойти на уловку - показывать не сам файл, а что-то другое. Что именно - зависит уже от типа файла. Для текста, например, можно показывать часть текста, либо текст с дефектами, со звездочками и с чем угодно еще, что вы придумаете. Для книг обычно показывают оглавление и несколько первых страниц книги. Для картинок - либо картинку с водными знаками, либо картинку низкого разрешение, либо оба варианта. В видео можно встроить логотип или баннер. И так далее.
PHP - вполне подходит, это полноценный язык программирования с кучей расширений на все случаи жизни.