PHP는 Netscape Composer나 W3C Amaya같은 클라이언트에 대해 HTTP PUT 방식(method)을 지원한다. PUT 요구(request)는 file upload보다 훨씬 쉽다. 단지 다음과 같이 하면 된다. :
이것은 보통 원격 클라이언트가 보낸 내용을 웹 트리 밑의 /path/filename.html로 저장하라는 의미이다. 그런데 여러분의 웹 트리밑에 있는 파일들을 아무나 덮어 쓸 수 있다는 것은 Apache나 PHP에 있어서 좋지 않은 생각이다. 따라서 이와 같은 요구를 다루기 전에, 우선 웹 서버에게 이런 요구를 다루는 PHP 스크립트를 미리 지정해 주어야 한다. 아파치에서는 Script 지시자로 그 내용을 지정한다. 이 지시자는 Apache 설정 파일중의 어느 위치에 있어도 괜찮으나, 보통 <Directory> 블록 안이나 <Virtualhost> 블록 안에 위치하는 것이 일반적이다. 보통 다음과 같이 설정한다. :
이것은 이 라인이 속하는 블록의 URI에 해당되는 모든 PUT 요구를 put.php3 스크립트에게 전달하라고 Apache에게 알려 준다. 물론 이 경우 .php3 확장자에 대하여 PHP설정이 완료되어 있고, PHP가 작동중이어야 한다.
put.php3 파일은 보통 다음과 같이 구성될 수 있다. :
위의 명령은 해당 파일을 원격 클라이언트가 요청한 위치에 복사하는 것이다. 아마 여러분은 복사하기 전에 사용자를 확인하거나 파일을 검사하는 등의 기능을 원할 것이다. 여기서 알 수 있는 것은 PHP가 POST-method의 요구를 받았을 때 POST-method기능과 마찬가지로 임시 파일에 해당 내용을 저장한다는 것이다. 즉, 요구가 끝나게 되면 임시파일은 지워진다. 따라서 PUT을 다루는 PHP 스크립트는 해당 파일을 어디 다른 곳에 복사해 두어야 한다. 임시파일의 이름은 $PHP_PUT_FILENAME 이라는 변수에 저장되고, $REQUEST_URI 변수에 클라이언트에서 보내온 저장할 파일의 경로와 이름이 저장된다. (Apache가 아닌 웹서버에서는 모양이 조금 달라진다.) 물론 여러분은 이 경로명과 파일명이 아닌 전혀 다른 위치에 다른 파일명을 사용할 수도 있다.