Just a note on "DTD not recognised..." faults. Check to make sure your wsdl file contains:
<?xml version ='1.0' encoding ='UTF-8' ?>
Also make sure you use full paths, to your service (in the wsdl, client and server)
...
<wsdlsoap:address location='http://www.mysite.com.au/web_services/myserver.php' />
...
<?php
// SOAP Server
$server = new SoapServer('http://www.mysite.com.au/web_services/hello.wsdl');
...
...
?>
<?php
// SOAP Client
$client = new SoapClient('http://www.mysite.com.au/web_services/hello.wsdl');
...
...
?>
FYI im no SOAP expert but I hope this helps someone out ;)