Micro blog about Answer to the Ultimate Question of Life, the Universe, and Everything.
  • Home
    • List all categories
    • Sitemap
  • Downloads
    • WebSphere
    • Hitachi902
    • Hospital
    • Kryptonite
    • OCR
    • APK
  • About me
    • Gallery
      • Italy2022
      • Côte d'Azur 2024
    • Curriculum vitae
      • Resume
      • Lebenslauf
    • Social networks
      • Facebook
      • Twitter
      • LinkedIn
      • Xing
      • GitHub
      • Google Maps
      • Sports tracker
    • Adventures planning
  1. You are here:  
  2. Home
  3. PHP
  4. PHP

NuSoap

Details
Written by: Stanko Milosev
Category: PHP
Published: 29 August 2008
Last Updated: 10 September 2008
Hits: 7014

Here are my expirience in working with NuSoap (SOAP) in PHP.

Creating simple SOAP function is simple,  so there is no need to explain.

Problems are coming when you need a complex types, like array, and UTF-8 encoding.

Here is an example of adding complex type to your SOAP server:

$server->wsdl->addComplexType(
'Chapter', //name
'complexType', //typeClass (complexType|simpleType|attribut)
'struct', //phpType: currently supported are array and struct (php assoc array)
'all', //compositor (all|sequence|choice)
'', //restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array)
array( //elements = array ( name = array(name=>”,type=>”) )
'title' => array('name'=>'title','type'=>'xsd:string'),
'page' => array('name'=>'page','type'=>'xsd:int')
) );
$server->wsdl->addComplexType(
'ChapterArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Chapter[]')
),
'tns:Chapter' );

$server->wsdl->addComplexType(
'Book',
'complexType',
'struct',
'all',
'',
array(
'author' => array('name'=>'author','type'=>'xsd:string'),
'title' => array('name'=>'title','type'=>'xsd:string'),
'numpages' => array('name'=>'numpages','type'=>'xsd:int'),
'toc' => array('name'=>'toc','type'=>'tns:ChapterArray')
) );

$server->register(
'getBook', // method name
array('title'=>'xsd:string'), // input parameters
array
('return'=>'tns:Book'), // output parameters
$NAMESPACE); // namespace

function
getBook($title) {
// Create TOC
$toc = array();
$toc[] = array('title' => 'Chapter One', 'page' => 1);
$toc[] = array('title' => 'Chapter Two', 'page' => 30);

// Create book
$book = array(
'author' => "Jack London",
'title' => $title,
'numpages' => 42,
'toc' => $toc);

return $book;
}

Taken from here.

Comments are taken from here.

Client example:

<?php
require_once('nusoap.php');

$namep = "Title";
$param = array('String_1' => $namep);

$endpoint = "http://localhost/server.php";

$mynamespace = "http://
localhost/server.php";
$client = new soapclient($endpoint);

$client->decodeUTF8 = true;
$response = $client->call('
getBook', $param, $mynamespace);
print_r ($response['author']);
echo '<p/>'.$client->response;
?>

Now, if you want to use utf - 8, you will have to in nusoap.php on line 152, instead of:

var $soap_defencoding = 'ISO-8859-1';

Add or uncomment:

var $soap_defencoding = 'UTF-8';

Also, on server side I added:

$server->decode_utf8  =  true; 

If you are using MySQL and data are encoded in Windows-1252 (like mine) then you will need to put:

mysql_query('set names utf8');

In  your server side.

I hope that is all.

Instalation PHP 5.2.6 on Windows XP IIS

Details
Written by: Stanko Milosev
Category: PHP
Published: 27 August 2008
Last Updated: 30 November -0001
Hits: 4824

If you are receiving error "The specified module could not be found." then try to instead of "C:Program FilesPHPphp5isapi.dll" write C:Progra~1PHPphp5isapi.dll (without quotes) in Web Sites node, and in Default Web Site node, or any other. Right -> Properties -> Home Directory -> Cofiguration, find .php and click edit.

 

Also,extension are now in C:Program FilesPHPext, so if you are using MS SQL PHP extension for MS SQL then you will need manually to copy files php_sqlsrv_ts.dll and php_sqlsrv.dll to that folder.

 Taken from my brain :P

Parametrized query

Details
Written by: Stanko Milosev
Category: PHP
Published: 27 August 2008
Last Updated: 30 November -0001
Hits: 4892

Whenever is possible use parameterized queries in MS driver for PHP for MS SQL, to reduce risko of SQL injection attack.Taken from here.

 

Using of parametrized queries is simple, you can use example from here, for varchar types everything is same (you don't need quotes, as I thought) .

 

 

Saving file.

Details
Written by: Stanko Milosev
Category: PHP
Published: 18 August 2008
Last Updated: 18 July 2011
Hits: 5118

There is no such thing as TStringList 

So, note to my self, for saving files in PHP (good for geting and analyzing queries) :

 

$fp = fopen('c:data.txt', 'w');
fwrite($fp, $MySQL);
fclose($fp);

Taken from here.

  1. Check if anything is assigned to $_GET

Page 3 of 4

  • 1
  • 2
  • 3
  • 4