<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>protung.ro &#187; php class</title>
	<atom:link href="http://www.protung.ro/tag/php-class/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.protung.ro</link>
	<description></description>
	<lastBuildDate>Tue, 16 Feb 2010 18:03:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP Spell Checker v1.1</title>
		<link>http://www.protung.ro/2010/02/php-spell-checker-v1-1/</link>
		<comments>http://www.protung.ro/2010/02/php-spell-checker-v1-1/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 18:03:14 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[Spell checker]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=274</guid>
		<description><![CDATA[A new version of PHP Spell Checker is available. The new feature is checking the spelling with Google&#8217;s &#8220;Did you mean&#8221; feature, so not a big update, but useful non the less. The syntax is the same: &#60;?php // include the class require_once(dirname(__FILE__)."/../GDYMSpellChecker.class.php"); // instantiate the class $spellCheck = new GDYMSpellChecker(); $textWithErrors = "PHP: the [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of PHP Spell Checker is available.<br />
The new feature is checking the spelling with <strong>Google&#8217;s &#8220;Did you mean&#8221;</strong> feature, so not a big update, but useful non the less.</p>
<p>The syntax is the same:</p>
<pre class="brush: php">&lt;?php

// include the class
require_once(dirname(__FILE__)."/../GDYMSpellChecker.class.php");

// instantiate the class
$spellCheck = new GDYMSpellChecker();

$textWithErrors = "PHP: the quik browm fox jumps over the lazi dog lazi today"; // this text has 3 errors
$result = $spellCheck->checkSpelling($textWithErrors, "en-US"); // will return an array with the wrong words with associated suggestions
//$result = $spellCheck->checkSpelling($textWithErrors, "en-US", false); // will return an array with the wrong words without associated suggestions
//print_r($spellCheck->getWarnings());// get all warnings
//print_r($spellCheck->getErrors());// get all errors
if (count($result) == 0) {
	print "Text is OK !&lt;br/&gt;";
} else {
	print "Text has errors !&lt;br/&gt;";
	print "&lt;pre&gt;";
	print_r($result);
}

?&gt;</pre>
<p>For further reading about the PHP class <a href="http://www.protung.ro/2009/08/php-spell-checker/">read this post</a>.</p>
<p><a title="Download class" href="http://titirit.users.phpclasses.org/browse/package/5597.html" target="_blank">Download the class from here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2010/02/php-spell-checker-v1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple XML Parser Namespace support</title>
		<link>http://www.protung.ro/2009/10/simple-xml-parser-namespace-support/</link>
		<comments>http://www.protung.ro/2009/10/simple-xml-parser-namespace-support/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 20:49:25 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=241</guid>
		<description><![CDATA[I have added support for namespaces to the parser. What this means, you are now able to register a namspace in order to be able to parse the XML. Also the usage of this class changed. &#60;?php $xml = "http://www.protung.ro/feed/atom/"; // parse an Atom feed // create a new object $parser = new SimpleLargeXMLParser(); // [...]]]></description>
			<content:encoded><![CDATA[<p>I have added support for namespaces to the parser.<br />
What this means, you are now able to register a namspace in order to be able to parse the XML.</p>
<p>Also the usage of this class changed.</p>
<pre class="brush: php">&lt;?php

$xml = "http://www.protung.ro/feed/atom/"; // parse an Atom feed

// create a new object
$parser = new SimpleLargeXMLParser();
// load the XML
$parser->loadXML($xml);

// register the namespace
$parser->registerNamespace("atom", "http://www.w3.org/2005/Atom");
// this will get an array of entries
$array = $parser->parseXML("//atom:feed/atom:entry");

?&gt;
</pre>
<p>As always, you can download the new version from <a href="http://www.phpclasses.org/browse/package/5667.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/10/simple-xml-parser-namespace-support/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New PHP Simple Large XML Parser version</title>
		<link>http://www.protung.ro/2009/10/new-php-simple-large-xml-parser-version/</link>
		<comments>http://www.protung.ro/2009/10/new-php-simple-large-xml-parser-version/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 10:56:20 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=225</guid>
		<description><![CDATA[I have added support for node attributes to the PHP Simple Large XML Parser class. Now it&#8217;s possible to retrieve the structure of the XML document with the attributes of the nodes. If you choose to get the nodes also the structure of the result array will be different from the non-attribute array. The new [...]]]></description>
			<content:encoded><![CDATA[<p>I have added support for node attributes to the PHP Simple Large XML Parser class.</p>
<p>Now it&#8217;s possible to retrieve the structure of the XML document with the attributes of the nodes. If you choose to get the nodes also the structure of the result array will be different from the non-attribute array.</p>
<p>The new structure will be like this:</p>
<pre class="brush: php">&lt;?php

array('value'=&gt; 'another node / value' ,
     'attributes'=&gt;array('attribute name'=&gt;'attribute value',
                    'another attribute'=&gt;'some value',
                    'yet another attribute'=&gt;'other value'
                    )
);

?&gt;</pre>
<p>In order to get the array with attributes you need to pass the 3rd parameter as true:</p>
<pre class="brush: php">&lt;?php

   SimpleLargeXMLParser::parseXML($xml, "//myFirstNode", true);

?&gt;</pre>
<p>You can download the new version from <a href="http://www.phpclasses.org/browse/package/5667.html">here</a>.</p>
<p>Please <a href="http://www.protung.ro/2009/09/php-simple-large-xml-parser/">read this post</a> for more information about the functionality of the class:</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/10/new-php-simple-large-xml-parser-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Yahoo Messenger Archive Decoder v1.5</title>
		<link>http://www.protung.ro/2009/09/php-yahoo-messenger-archive-decoder-v1-5/</link>
		<comments>http://www.protung.ro/2009/09/php-yahoo-messenger-archive-decoder-v1-5/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 18:25:57 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[archive]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[Yahoo Messenger Archive Decoder]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=188</guid>
		<description><![CDATA[A new version of PHP Yahoo Messenger Archive Decoder is available for download. I know 2 years have passed since the release (or actually any other modifications), but a friend asked me to modify it so he can use it to parse conference history files. So this is what&#8217;s new in this version. I really [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of PHP Yahoo Messenger Archive Decoder is available for <a href="http://titirit.users.phpclasses.org/browse/package/3938.html">download</a>.</p>
<p>I know 2 years have passed since the release (or actually any other modifications), but a friend asked me to modify it so he can use it to parse conference history files. So this is what&#8217;s new in this version.</p>
<p>I really don&#8217;t think a new version will be added, unless it will not work anymore with the latest yahoo messenger version (it still works with version 10 beta)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/09/php-yahoo-messenger-archive-decoder-v1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP simple large XML parser</title>
		<link>http://www.protung.ro/2009/09/php-simple-large-xml-parser/</link>
		<comments>http://www.protung.ro/2009/09/php-simple-large-xml-parser/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 15:55:24 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=180</guid>
		<description><![CDATA[I needed a simple PHP script to parse large XML files fast and without huge memory consumption, so I&#8217;ve written a small class for this. This class can be used to parse large XML files (it works with small one also) fast and with minimum of memory consumption. It can parse any valid XML and [...]]]></description>
			<content:encoded><![CDATA[<p>I needed a simple PHP script to parse large XML files fast and without huge memory consumption, so I&#8217;ve written a small class for this.</p>
<p>This class can be used to parse large XML files (it works with small one also) fast and with minimum of memory consumption.<br />
It can parse any valid XML and convert it to an array. What it does not do is to get the attributes of the nodes.<br />
If you need it, contact me and i can implement it for you if you want.</p>
<p>You can parse any part of the XML as it supports XPath with the same performance as parsing the entire XML (well, a little bit faster as it&#8217;s less data to parse)</p>
<h2><span id="more-180"></span>Here is an example</h2>
<p>Let&#8217;s say we have the following XML file (called example.xml)</p>
<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!--
/**********************
 * Example XML (not that large, but it's for demo purpose only)
 **********************/
 --&gt;
&lt;myFirstNode&gt;
	&lt;color-palettes&gt;
		&lt;color type='txt'&gt;red&lt;/color&gt;
		&lt;color type='txt'&gt;yellow&lt;/color&gt;
		&lt;color type='txt'&gt;lime&lt;/color&gt;
		&lt;color type='txt'&gt;cyan&lt;/color&gt;
		&lt;color type='txt'&gt;blue&lt;/color&gt;
		&lt;color type='txt'&gt;magenta&lt;/color&gt;
		&lt;color type='txt'&gt;white&lt;/color&gt;
		&lt;color type='txt'&gt;black&lt;/color&gt;
		&lt;color type='hex'&gt;#FF0000&lt;/color&gt;
		&lt;color type='hex'&gt;#FFFF00&lt;/color&gt;
		&lt;color type='hex'&gt;#00FF00&lt;/color&gt;
		&lt;color type='hex'&gt;#00FFFF&lt;/color&gt;
		&lt;color type='hex'&gt;#0000FF&lt;/color&gt;
		&lt;color type='hex'&gt;#FF00FF&lt;/color&gt;
		&lt;color type='hex'&gt;#FFFFFF&lt;/color&gt;
		&lt;color type='hex'&gt;#000000&lt;/color&gt;
	&lt;/color-palettes&gt;
	&lt;first-100-numbers&gt;
		&lt;number n='1'&gt;1&lt;/number&gt;
		&lt;number n='2'&gt;2&lt;/number&gt;
		&lt;number n='3'&gt;3&lt;/number&gt;
		...
		&lt;number n='97'&gt;97&lt;/number&gt;
		&lt;number n='98'&gt;98&lt;/number&gt;
		&lt;number n='99'&gt;99&lt;/number&gt;
		&lt;number n='100'&gt;100&lt;/number&gt;
	&lt;/first-10-numbers&gt;
	&lt;searchengines&gt;
		&lt;engine&gt;
			&lt;name&gt;Google&lt;/name&gt;
			&lt;website&gt;http://www.google.com&lt;/website&gt;
		&lt;/engine&gt;
		&lt;engine&gt;
			&lt;name&gt;Yahoo&lt;/name&gt;
			&lt;website&gt;http://www.yahoo.com&lt;/website&gt;
		&lt;/engine&gt;
		&lt;engine&gt;
			&lt;name&gt;Bing&lt;/name&gt;
			&lt;website&gt;http://www.bing.com&lt;/website&gt;
		&lt;/engine&gt;
	&lt;/searchengines&gt;
&lt;/myFirstNode&gt;</pre>
<p>And here is the PHP code to extract some data from it as an array:</p>
<pre class="brush: php">&lt;php

// include the class
require_once('SimpleLargeXMLParser.class.php');
$xml = "example.xml";

// get all colors in hex format as an array
$array = SimpleLargeXMLParser::parseXML($xml, "//myFirstNode/color-palettes/color[@type='hex']");

// get all numbers bigger then 50 as an array
$array = SimpleLargeXMLParser::parseXML($xml, "//myFirstNode/first-100-numbers/number[@n&gt;'50']");

// get all search engines as an array
$array = SimpleLargeXMLParser::parseXML($xml, "//myFirstNode/searchengines");

// get the full XML file as an array
// if you don't specify the first node the script will search for it and use the root node
// for performance reasons is better to specify it if you know it
$array = SimpleLargeXMLParser::parseXML($xml, "//myFirstNode"); 

?&gt;</pre>
<p>A new version is available. See <a href="http://www.protung.ro/2009/10/new-php-simple-large-xml-parser-version/">this post</a> for more information about what&#8217;s new.</p>
<h2>Download</h2>
<p>Download <a href="http://www.phpclasses.org/browse/package/5667.html">here</a>. (there are some examples in the package)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/09/php-simple-large-xml-parser/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP WSDL Generator new version work in progress</title>
		<link>http://www.protung.ro/2009/09/php-wsdl-generator-new-version-work-in-progress/</link>
		<comments>http://www.protung.ro/2009/09/php-wsdl-generator-new-version-work-in-progress/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 20:36:08 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[wsdl]]></category>
		<category><![CDATA[WSDL Generator]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=177</guid>
		<description><![CDATA[i started working on a new (improved) version of PHP WSDL Generator. Many people have asked for new features and better output this is what the new version will have. I will also rewrite almost all the code. The new PHP parser is almost done. Now you can also add classes without specifying files. Just [...]]]></description>
			<content:encoded><![CDATA[<p>i started working on a new (improved) version of PHP WSDL Generator.<br />
Many people have asked for new features and better output this is what the new version will have.<br />
I will also rewrite almost all the code.</p>
<p>The new PHP parser is almost done. Now you can also add classes without specifying files. Just include them in  your code and tell the generator to also use those classes. Of course the old way to add classes (by specifying files with PHP code) will still be available, but unlike before when the content of the files was parsed, now the files first will be included (using require_once() ). I know this is not ideal if you have other code that must not arbitrary execute, but then again it&#8217;s good practice to have the classes separated from any other code. The new parser will be much faster and more accurate.</p>
<p>That&#8217;s all for now, I will post more news about this after more work is done.</p>
<p>Please don&#8217;t ask when the release will happen as I don&#8217;t know. I do this in my free time witch is somehow limited right now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/09/php-wsdl-generator-new-version-work-in-progress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Spell Checker</title>
		<link>http://www.protung.ro/2009/08/php-spell-checker/</link>
		<comments>http://www.protung.ro/2009/08/php-spell-checker/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 19:00:31 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[Spell checker]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=20</guid>
		<description><![CDATA[This package can be used to check the spelling of text and get fix suggestions. There is a base class that defines functions for spell checking. There are also two classes for checking the spelling of text using either PHP scripts that contain arrays of valid words and grammar definitions, or using the hunspell program. [...]]]></description>
			<content:encoded><![CDATA[<p>This package can be used to check the spelling of text and get fix suggestions.</p>
<p>There is a base class that defines functions for spell checking.</p>
<p>There are also two classes for checking the spelling of text using either PHP scripts that contain arrays of valid words and grammar definitions, or using the hunspell program.</p>
<p>If the classes determine that there are misspelled words, they may return suggestions for eventual fixes.</p>
<p><span id="more-20"></span></p>
<ol>
<li> Installation<br />
This class uses affix dictionaries. This means that you can use the dictionaries from OpenOffice or Mozilla products.<br />
Just go to https://addons.mozilla.org/en-US/firefox/browse/type:3 and download the dictionaries that you want.<br />
Unpack the *.xpi files and extract the *.aff and *.dic files into dictionaries/hunspell/ folder.<br />
This class also works with MySpell dictionaries.<br />
There is nothing more you have to do, just start using the class. Please read further and then take a look at the examples.</li>
<li>HunSpell version<br />
The hunspell version of this class is preferred.<br />
It uses less memory for complex languages or with a very big dictionary (over 150.000 words) and the word suggestion is excellent.<br />
You can get the binaries from http://sourceforge.net/projects/hunspell/files/Hunspell/1.2.8/<br />
When using this version of the class you need to specify where hunspell is installed by calling the setHunspellPath() method<br />
or add hunspell to the system path.</li>
<li>PHP version<br />
In case you can not install hunspell on your server you can use a pure PHP version.<br />
The words suggestions is not as good as the HunSpell version (will implement a new algorithm soon).<br />
Also the PHP version can use a lot of memory for complex languages or with a very big dictionary (over 150.000 words).<br />
As an example, for German languages the script can use over 100Mb. On the other hand for simple languages it only uses about 10Mb.<br />
The affix dictionaries can not be used as it is. They need to be converted to PHP code.<br />
This can be done manuall by calling the compileHunAffixDictionary() method.<br />
If the dictionary is not compiled yet, the first time you use it it will try to compile it from hunspell.<br />
For complex languages this file can be over 15Mb.</li>
<li>Known bugs, accuracy and performance concerns<br />
There are several known bugs:</p>
<ul>
<li> initially if a word has the suffix doubled (misspell) the spell checker reports it as a correct word. (pure PHP version only).There is a fix implmented that will rezolve the issue but if a word is correctly spelled with the doubled sufix it will be reported ar wrong.You can remove the fix by commenting the 93-95 lines in PHPSpellChecker.class.php</li>
</ul>
<ul>
<li> in some languages there is a need for a special encoding and this is not yet supported (will be soon)</li>
</ul>
<p>Accuracy: (pure PHP version)</p>
<ul>
<li> Word suggestion is not very smart. It&#8217;s just a simple &#8220;algorithm&#8221;. I plan on improveing this (maybe you can help out)</li>
</ul>
<p>Performance:</p>
<ul>
<li> For very complex languages, or with a very big dictionary (over 150.000 words) (pure PHP version only) the script can use alot of memmory (100Mb)</li>
</ul>
</li>
<li>Conclusion<br />
The PHP version can be used very efficient for simple languages or with small dictionary (ex. english)<br />
This is just the first release and it will be greatlly improved.<br />
If you want to participate on this project please contact me.</li>
</ol>
<p>Example (PHP Based):</p>
<pre class="brush: php">&lt;?php

// include the class
require_once(dirname(__FILE__)."/../PHPSpellChecker.class.php");

// instantiate the class
$spellCheck = new PHPSpellChecker();

/////////////////////////
// set some text to check
$text1 = "Die Commerzbank blickt besorgt in die Zukunft: Das Geldhaus rechnet in der zweiten Jahreshälfte mit einer Zunahme von Kreditausfällen - denn Firmen wie Privatkunden bekommen Probleme, ihre Schulden zu bedienen. Schon jetzt hat das Institut vorsichtshalber knapp eine Milliarde Euro zurückgelegt";
$result = $spellCheck-&gt;checkSpelling($text1, "de-DE"); // should return an empty array (text is correct)
//print_r($spellCheck-&gt;getWarnings());// get all warnings
//print_r($spellCheck-&gt;getErrors());// get all errors
if (count($result) == 0) {
    print "Text is OK !
";
} else {
    print "Text has errors !
";
    print "&lt;pre&gt;";
    print_r($result);
}
$spellCheck-&gt;clearWarnings(); // clear all previous warnings
$spellCheck-&gt;clearErrors(); // clear all previous errors

$text1 = "PHP: the quik browm fox jumps over the lazi dog"; // this text has 3 errors
$result = $spellCheck-&gt;checkSpelling($text1, "en-US"); // will return an array with the wrong words with associated suggestions
//$result = $spellCheck-&gt;checkSpelling($textWithErrors, "en-US", false); // will return an array with the wrong words without associated suggestions
//print_r($spellCheck-&gt;getWarnings());// get all warnings
//print_r($spellCheck-&gt;getErrors());// get all errors
if (count($result) == 0) {
    print "Text is OK !
";
} else {
    print "Text has errors !
";
    print "&lt;pre&gt;";
    print_r($result);
}

?&gt;</pre>
<p>Example (HunSpell Based):</p>
<pre class="brush: php">&lt;?php
// include the class
require_once(dirname(__FILE__)."/../HunSpellChecker.class.php");

// instantiate the class
$spellCheck = new HunSpellChecker();
$spellCheck-&gt;setHunspellPath(dirname(__FILE__)."/../hunspell"); // set path for windows systems
/////////////////////////
// set some text to check
$text1 = "Die Commerzbank blickt besorgt in die Zukunft: Das Geldhaus rechnet in der zweiten Jahreshälfte mit einer Zunahme von Kreditausfällen - denn Firmen wie Privatkunden bekommen Probleme, ihre Schulden zu bedienen. Schon jetzt hat das Institut vorsichtshalber knapp eine Milliarde Euro zurückgelegt";
$result = $spellCheck-&gt;checkSpelling($text1, "de-DE"); // should return an empty array (text is correct)
//print_r($spellCheck-&gt;getWarnings());// get all warnings
//print_r($spellCheck-&gt;getErrors());// get all errors
if (count($result) == 0) {
    print "Text is OK !
";
} else {
    print "Text has errors !
";
    print "&lt;pre&gt;";
    print_r($result);
}
$spellCheck-&gt;clearWarnings(); // clear all previous warnings
$spellCheck-&gt;clearErrors(); // clear all previous errors

$text1 = "PHP: the quik browm fox jumps over the lazi dog"; // this text has 3 errors
$result = $spellCheck-&gt;checkSpelling($text1, "en-US"); // will return an array with the wrong words with associated suggestions
//$result = $spellCheck-&gt;checkSpelling($textWithErrors, "en-US", false); // will return an array with the wrong words without associated suggestions
//print_r($spellCheck-&gt;getWarnings());// get all warnings
//print_r($spellCheck-&gt;getErrors());// get all errors
if (count($result) == 0) {
    print "Text is OK !
";
} else {
    print "Text has errors !
";
    print "&lt;pre&gt;";
    print_r($result);
}
?&gt;</pre>
<p>In the package you will also get an interactive example page so you can easily test it out.</p>
<p><a title="Download class" href="http://titirit.users.phpclasses.org/browse/package/5597.html" target="_blank">Download class</a> and hope it&#8217;s useful to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/08/php-spell-checker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP WSDL Generator</title>
		<link>http://www.protung.ro/2009/08/php-wsdl-generator/</link>
		<comments>http://www.protung.ro/2009/08/php-wsdl-generator/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 17:50:32 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[wsdl]]></category>
		<category><![CDATA[WSDL Generator]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=16</guid>
		<description><![CDATA[This package can be used to generate a Web Services Definition Language (WSDL) document from the code of a class that implements Web services calls. It parses the code of a given PHP class script files and generates a WSDL definition from the list of the class functions. Certain functions may be skipped to not [...]]]></description>
			<content:encoded><![CDATA[<p>This package can be used to generate a Web Services Definition Language (WSDL) document from the code of a class that implements Web services calls.</p>
<p>It parses the code of a given PHP class script files and generates a WSDL definition from the list of the class functions.</p>
<p>Certain functions may be skipped to not be included in the WSDL definition based on the function access type.</p>
<p>The generated WSDL may be saved to a given file, returned as a string or served for download.</p>
<p><a title="Download class" href="http://titirit.users.phpclasses.org/browse/package/3509.html" target="_blank">Download class</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/08/php-wsdl-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timed One Time Password (TOTP)</title>
		<link>http://www.protung.ro/2009/08/timed-one-time-password/</link>
		<comments>http://www.protung.ro/2009/08/timed-one-time-password/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 19:00:48 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[Timed One Time Password]]></category>
		<category><![CDATA[TOTP]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=18</guid>
		<description><![CDATA[This class can be used to generate and validate one time passwords that may expire after a period of time (without using a database or saving the password of any kind). It generates a code based on a secret key that is valid during a period of time. The class can also be used to [...]]]></description>
			<content:encoded><![CDATA[<p>This class can be used to generate and validate one time passwords that may expire after a period of time (without using a database or saving the password of any kind).</p>
<p>It generates a code based on a secret key that is valid during a period of time.</p>
<p>The class can also be used to validate the generated code in a different server and check if the code expired.</p>
<p><a title="Download class" href="http://titirit.users.phpclasses.org/browse/package/4644.html" target="_blank">Download class</a></p>
<p><span id="more-18"></span></p>
<blockquote><p><em></p>
<div id="attachment_120" class="wp-caption alignleft" style="width: 99px"></em><em><a href="http://www.phpclasses.org/award/innovation/"><img class="size-full wp-image-120" title="PHPClasses Innovation Award" src="http://www.protung.ro/wp-content/uploads/phpclasses_innovation_logo.gif" alt="July 2008 Number 6" width="89" height="89" /></a></em><p class="wp-caption-text">July 2008 Number 6</p></div>
<p>One time passwords are useful to provide authorization to access restricted resources during a single access.<br />
<em></em></p>
<p><em>This class enhances the concept of one time passwords by giving a single access to the resources for a limited period of time.</em><br />
<em></em></p>
<p><em>Manuel Lemos</em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/08/timed-one-time-password/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Yahoo Messenger Archive Decoder</title>
		<link>http://www.protung.ro/2009/08/php-yahoo-messenger-archive-decoder/</link>
		<comments>http://www.protung.ro/2009/08/php-yahoo-messenger-archive-decoder/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:05:49 +0000</pubDate>
		<dc:creator>Dragos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[archive]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[Yahoo Messenger Archive Decoder]]></category>

		<guid isPermaLink="false">http://www.protung.ro/?p=9</guid>
		<description><![CDATA[This class can be used to parse and extract information from Yahoo Messenger chat history files. It can parse a given chat history file and extract several details of each message that was exchanged in the chat sessions. The class retrieves the message text and length, timestamp and the identifier of the user that sent [...]]]></description>
			<content:encoded><![CDATA[<p>This class can be used to parse and extract information from Yahoo Messenger chat history files.</p>
<p>It can parse a given chat history file and extract several details of each message that was exchanged in the chat sessions.</p>
<p>The class retrieves the message text and length, timestamp and the identifier of the user that sent the message.</p>
<p>The message text is retrieved in HTML format, but the class may strip HTML formatting.</p>
<p><a title="Download class" href="http://titirit.users.phpclasses.org/browse/package/3938.html" target="_blank">Download class</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.protung.ro/2009/08/php-yahoo-messenger-archive-decoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

