milosev.com
  • 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

NuSOAP

Details
Written by: Stanko Milosev
Category: PHP
Published: 09 September 2008
Last Updated: 30 November -0001
Hits: 4238
In queries can't be unicode characters, at least, I couldn't find way to do it. Of course, in a result can be unicode characters as I already described. Also, it is very important how do you save your unit, if it is saved as unicode, again, you will have problems.

Passing $_POST variable to redirected page.

Details
Written by: Stanko Milosev
Category: PHP
Published: 08 September 2008
Last Updated: 18 July 2011
Hits: 5701

If you need to redirect page and pass $_POST variable (or any other variable) you should use following code:

 

<?php
  header("HTTP/1.0 307 Temporary redirect");
  header("Location: http://localhost/test.php");
?> 

List all files in a directory tree.

Details
Written by: Stanko Milosev
Category: PHP
Published: 03 September 2008
Last Updated: 03 March 2015
Hits: 5786
I am too lazy, I know.

Here is recursive way:

<?php
	function rec_listFiles( $from = '.')
	{
		if(! is_dir($from))
		return false;

		$files = array();
		if( $dh = opendir($from))
		{
			while( false !== ($file = readdir($dh)))
			{
				// Skip '.' and '..'
				if( $file == '.' || $file == '..')
				continue;
				$path = $from . '/' . $file;
				if( is_dir($path) )
				$files += rec_listFiles($path);
				else
				$files[] = $path;
			}
			closedir($dh);
		}
		return $files;
	}
?>
And here is iterative:
<?php
	function listFiles( $from = '.')
	{
		if(! is_dir($from))
		return false;
		$files = array();
		$dirs = array( $from);
		while( NULL !== ($dir = array_pop( $dirs)))
		{
			if( $dh = opendir($dir))
			{
				while( false !== ($file = readdir($dh)))
				{
					if( $file == '.' || $file == '..')
					continue;
					$path = $dir . '/' . $file;
					if( is_dir($path))
					$dirs[] = $path;
					else
					$files[] = $path;
				}
				closedir($dh);
			}
		}

		return $files;
	}
?>
Searching for a file in a directory tree:
<?php
	function rec_listFiles( $fileName, $from = '.', &$pathOut)
	{
		if ($pathOut != '')
			return true;
		else
		{

			if(! is_dir($from))
				return false;

			if( $dh = opendir($from))
			{
				while( false !== ($file = readdir($dh)))
				{
					// Skip '.' and '..'
					if( $file == '.' || $file == '..')
						continue;
					$path = $from . '/' . $file;
					if( is_dir($path) )
					{
						//echo $path.'<p/>';
						rec_listFiles($fileName, $path, $pathOut);
					}
					else
					{
						if ($fileName == $file)
						{
							$pathOut = $path;
						}
					}
				}
			closedir($dh);
			}
			if ($pathOut == '')
				return false;
			else
				return true;
		}
	}

	$pom = '';
	if (rec_listFiles('mod_newsflash.php', '.', $pom))
	echo $pom;
	else
	echo 'Could not find file.';
?>

NuSoap

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

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.

  1. Instalation PHP 5.2.6 on Windows XP IIS
  2. Parametrized query
  3. Saving file.
  4. Check if anything is assigned to $_GET

Subcategories

C#

Azure

ASP.NET

JavaScript

Software Development Philosophy

MS SQL

IBM WebSphere MQ

MySQL

Joomla

Delphi

PHP

Windows

Life

Lazarus

Downloads

Android

CSS

Chrome

HTML

Linux

Eclipse

Page 103 of 164

  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107