There is an extension in PECL (iisfunc) that hnadles this directly. It
works with both PHP4 and PHP5
- Frank
> I'm trying to build a few PHP scripts to administer my IIS server, and
I
> have a problem/difference in output in the COM support from PHP 4.3.4
to
> php 5b3.
>
> I'm running php 4.3.4 and php 5beta3, both from command line, with full
> administrative priveleges on a win2k server/IIS (and if important, over
> terminal services).
>
> If anybody has an idea why the difference in output is (change in the
> functions? bug?), I'd appreciate quite a bit.
>
> Output is below, with the sample code. Output has been modified only to
> not give away IP address/hostname information.
>
> Thanks in advance,
> Andrew S�guin
>
> ----------------------------
> -------PHP 4 Output---------
> C:\php4>php -c c:\winnt\php.ini iis.class.php
> Content-type: text/html
> X-Powered-By: PHP/4.3.4
>
> Array
> (
> [0] => Array
> (
> [name] => 1
> [ServerComment] => XXXXXXX
> [bindings] => Array
> (
> [0] => Array
> (
> [hostheader] => xxxxxxxxxxxxxxxxxxxxxxxxx
> [port] => yy
> [ip] => zzz.zzz.zzz.zzz
> )
>
> )
>
> )
> ....
>
>
>
> ----------------------------
> -------PHP 5 Output---------
> C:\php4>copy iis.class.php ..\php5
> C:\php4>cd ..\php5
> C:\php5>php -c c:\winnt\php.ini iis.class.php
> Content-type: text/html
> X-Powered-By: PHP/5.0.0b3
>
> <br />
> <b>Fatal error</b>: Uncaught exception 'exception' with message
'Unknown
> except
> ion' in C:\php5\iis.class.php:34
> Stack trace:
> #0 C:\php5\iis.class.php(112): iis::getSites()
> #1 {main}
> thrown in <b>C:\php5\iis.class.php</b> on line <b>34</b><br />
>
>
>
>
>
> ------------------------------
> -------Relevant code----------
> --(line numbers in comments)--
>
> <?php
>
>
> class iis {
> //...
> /*30:*/ function getSites() {
> $iis = new COM("IIS://localhost/w3svc");
> $retarr = array();
>
> /*34:*/ while( $obj = $iis->Next() ) {
>
> if ($obj->Class == 'IIsWebServer') {
> $server = array();
>
> $site = new COM("IIS://Localhost/w3svc/".$obj->Name);
> $server['name'] = $obj->Name;
>
> $server['ServerComment'] = $site->ServerComment;
> $bindings = $site->ServerBindings;
>
> foreach($bindings as $binding) {
>
> list($b['ip'], $b['port'], $b['hostheader']) =
> explode(':',
$binding);
> $server['bindings'][] = $b;
>
> }
>
> unset($site);
>
> $retarr[] = $server;
> }
> }
> unset($iis);
>
> return $retarr;
> }
> //...
>
> }
>
> //echo("Max ID: " . iis::getNewSiteID() );
> /*112*/print_r( iis::getSites() );
> ?>
>
> --
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php