<?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>open-pitu, el blog lliure en català &#187; PHP</title>
	<atom:link href="http://openpitu.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://openpitu.com</link>
	<description>Blog dedicat al software lliure i la programació.</description>
	<lastBuildDate>Mon, 03 Sep 2012 15:37:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Esborrar nodes del DOM en PHP</title>
		<link>http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/</link>
		<comments>http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 22:05:05 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=956</guid>
		<description><![CDATA[En alguns casos, podem necessitar a partir d'un fitxer o d'un string que conté HTML, poder-ne fer modificacions, pertinents. En aquest post veurem com carregar aquest contingut en un objecte, validant-ne l'estructura. A partir d'aquí es poden fer consultes, per a obtenir els nodes desitjats i a partir d'aquí fer-ne les modificacions corresponents, en aquest cas esborrar.
<ol>
	<li>$dom = new DOMDocument;</li>
	<li>$dom-&#62;loadHTML( $htmlString );</li>
	<li>$xPath = new DOMXPath( $dom );</li>
</ol>
En aquest cas, el contingut està en una variable anomenada $htmlString. En el cas que volem obtenir el contingut d'un fitxer podem fer-ho amb loadHTMLFIle:
<ol>
	<li>$dom = new DOMDocument;</li>
	<li>$dom-&#62;loadHTMLFile( 'exemple.html' );</li>
	<li>$xPath = new DOMXPath( $dom );</li>
</ol>
Un cop fet això si volem podem obtenir tots els nodes que siguin imatges de la següent manera:
<ol>
	<li>$images = $xml-&#62;xpath( '//img' );</li>
</ol>
Per a poder, en aquest cas esborrar els nodes obtinguts:
<ol>
	<li>foreach ($images as $node) {</li>
	<li style="margin-left: 15px;">$node-&#62;parentNode-&#62;removeChild($node);</li>
	<li>}</li>
</ol>
Un cop acabat el bucle caldria guardar el DOM a la variable o el fitxer en qüestió:
<ol>
	<li>$htmlString = $dom-&#62;saveHTML();</li>
</ol>
En el cas que hi usem un fitxer podem usar saveHTMLFile. El retorn d'aquesta funció en aquest cas no és el contingut sinó el nombre de Bytes escrits:
<ol>
	<li>$doc-&#62;saveHTMLFile("exemple.html")</li>
</ol>
Aquest mateix codi també es podria fer amb expressions regulars, i podríem obtenir uns resultats semblants, però amb un codi molt menys entenedor i més propens a bugs.
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/php.png"><img class="aligncenter size-full wp-image-958" title="php" src="http://openpitu.com/wp-content/uploads/2011/08/php.png" alt="" width="480" height="253" /></a></p>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-1" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/&amp;title=Esborrar%20nodes%20del%20DOM%20en%20PHP" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-1" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/&amp;title=Esborrar%20nodes%20del%20DOM%20en%20PHP" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-1" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-1" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/&amp;title=Esborrar%20nodes%20del%20DOM%20en%20PHP" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-1" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F30%2Fesborrar-nodes-del-dom-en-php%2F&amp;t=Esborrar%20nodes%20del%20DOM%20en%20PHP&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-1" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2011%2F08%2F30%2Fesborrar-nodes-del-dom-en-php%2F&amp;text=Esborrar%20nodes%20del%20DOM%20en%20PHP&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>En alguns casos, podem necessitar a partir d&#8217;un fitxer o d&#8217;un string que conté HTML, poder-ne fer modificacions, pertinents. En aquest post veurem com carregar aquest contingut en un objecte, validant-ne l&#8217;estructura. A partir d&#8217;aquí es poden fer consultes, per a obtenir els nodes desitjats i a partir d&#8217;aquí fer-ne les modificacions corresponents, en aquest cas esborrar.</p>
<ol>
<li>$dom = new DOMDocument;</li>
<li>$dom-&gt;loadHTML( $htmlString );</li>
<li>$xPath = new DOMXPath( $dom );</li>
</ol>
<p>En aquest cas, el contingut està en una variable anomenada $htmlString. En el cas que volem obtenir el contingut d&#8217;un fitxer podem fer-ho amb loadHTMLFIle:</p>
<ol>
<li>$dom = new DOMDocument;</li>
<li>$dom-&gt;loadHTMLFile( &#8216;exemple.html&#8217; );</li>
<li>$xPath = new DOMXPath( $dom );</li>
</ol>
<p>Un cop fet això si volem podem obtenir tots els nodes que siguin imatges de la següent manera:</p>
<ol>
<li>$images = $xml-&gt;xpath( &#8216;//img&#8217; );</li>
</ol>
<p>Per a poder, en aquest cas esborrar els nodes obtinguts:</p>
<ol>
<li>foreach ($images as $node) {</li>
<li style="margin-left: 15px;">$node-&gt;parentNode-&gt;removeChild($node);</li>
<li>}</li>
</ol>
<p>Un cop acabat el bucle caldria guardar el DOM a la variable o el fitxer en qüestió:</p>
<ol>
<li>$htmlString = $dom-&gt;saveHTML();</li>
</ol>
<p>En el cas que hi usem un fitxer podem usar saveHTMLFile. El retorn d&#8217;aquesta funció en aquest cas no és el contingut sinó el nombre de Bytes escrits:</p>
<ol>
<li>$doc-&gt;saveHTMLFile(&#8220;exemple.html&#8221;)</li>
</ol>
<p>Aquest mateix codi també es podria fer amb expressions regulars, i podríem obtenir uns resultats semblants, però amb un codi molt menys entenedor i més propens a bugs.</p>
<p style="text-align: center;"><a href="http://openpitu.com/wp-content/uploads/2011/08/php.png"><img class="aligncenter size-full wp-image-958" title="php" src="http://openpitu.com/wp-content/uploads/2011/08/php.png" alt="" width="480" height="253" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2011/08/30/esborrar-nodes-del-dom-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web service amb PHP i NuSOAP</title>
		<link>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/</link>
		<comments>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 17:13:03 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[WebService]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=661</guid>
		<description><![CDATA[Un Web service és un conjunt de protocols i estàndards que serveixen per intercanviar dades entre aplicacion. Diferents aplicacions desenvolupades amb llenguatges de programació diferents i executades des de qualsevol plataforma, poden intercanviar dades per Internet.
La majoria de nosaltres quan pensem amb Web service des seguida ens ve al cap Java i Tomcat. És una de les maneres més senzilles de fer-ho, però a vegades, en funció del què hi ha fet en un projecte, ens pot ser molt més senzill fer-ho amb PHP.
Per tal de poder usar els codis que es mostren a continuació, cal que ens descarreguem la llibreria <a title="Descarregar llibreria." href="http://sourceforge.net/projects/nusoap/" target="_blank">NuSOAP</a> de PHP,
A continuació veurem un exemple de Servidor, que el crida un client.
<h2><strong>Server.php</strong></h2>
<ol>
	<li>require_once('NUSOAP/nusoap.php');</li>
	<li>$soap = new soap_server;</li>
	<li>$soap-&#62;configureWSDL('open-pitu Service', 'http://latevaurl.cat/elteupath/');</li>
	<li>$soap-&#62;register(</li>
	<li style="padding-left: 15px;">'hola',// nom del mètode</li>
	<li style="padding-left: 15px;">array('nom' =&#62; 'xsd:string', 'cognom' =&#62; 'xsd:string' ),// variables d'entrada</li>
	<li style="padding-left: 15px;">array('return' =&#62; 'xsd:string'),    // retorn</li>
	<li style="padding-left: 15px;">'uri:hola',// namespace</li>
	<li style="padding-left: 15px;">'uri:hola/get',// SOAPAction</li>
	<li style="padding-left: 15px;">'rpc',// style</li>
	<li style="padding-left: 15px;">'encoded'// use</li>
	<li>);</li>
	<li>function hola( $nom, $cognom ){</li>
	<li style="padding-left: 15px;">return "Hola ".$nom." ".$cognom."!";</li>
	<li>}</li>
	<li>$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';</li>
	<li>$soap-&#62;service($HTTP_RAW_POST_DATA);</li>
</ol>
<h2><strong>Client.php</strong></h2>
<ol>
	<li>require_once('NUSOAP/nusoap.php');</li>
	<li>try</li>
	<li style="padding-left: 15px;">$client = new nusoap_client('http://latevaurl.cat/elteupath/server.php?wsdl');</li>
	<li style="padding-left: 15px;">$result = $client-&#62;call('Hola', array('nom' =&#62; "Leo", 'cognom' =&#62; "Messi" ) );</li>
	<li style="padding-left: 15px;">print_r($result);</li>
	<li>}</li>
	<li>catch( SoapFault $e ){</li>
	<li style="padding-left: 15px;">echo 'EXCEPTION='.$e;</li>
	<li>}</li>
</ol>
Recordeu que per a què el codi funcioni cal tenir activat SOAP a Apache. Podeu seguir <a title="Install SOAP" href="http://www.php.net/manual/en/soap.installation.php" target="_blank">aquestes intruccions</a>.]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-2" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-2" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-2" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-2" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/&amp;title=Web%20service%20amb%20PHP%20i%20NuSOAP" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-2" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2011%2F04%2F12%2Fweb-service-amb-php-i-nusoap%2F&amp;t=Web%20service%20amb%20PHP%20i%20NuSOAP&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-2" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2011%2F04%2F12%2Fweb-service-amb-php-i-nusoap%2F&amp;text=Web%20service%20amb%20PHP%20i%20NuSOAP&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>Un Web service és un conjunt de protocols i estàndards que serveixen per intercanviar dades entre aplicacion. Diferents aplicacions desenvolupades amb llenguatges de programació diferents i executades des de qualsevol plataforma, poden intercanviar dades per Internet.</p>
<p>La majoria de nosaltres quan pensem amb Web service des seguida ens ve al cap Java i Tomcat. És una de les maneres més senzilles de fer-ho, però a vegades, en funció del què hi ha fet en un projecte, ens pot ser molt més senzill fer-ho amb PHP.</p>
<p>Per tal de poder usar els codis que es mostren a continuació, cal que ens descarreguem la llibreria <a title="Descarregar llibreria." href="http://sourceforge.net/projects/nusoap/" target="_blank">NuSOAP</a> de PHP,</p>
<p>A continuació veurem un exemple de Servidor, que el crida un client.</p>
<h2><strong>Server.php</strong></h2>
<ol>
<li>require_once(&#8216;NUSOAP/nusoap.php&#8217;);</li>
<li>$soap = new soap_server;</li>
<li>$soap-&gt;configureWSDL(&#8216;open-pitu Service&#8217;, &#8216;http://latevaurl.cat/elteupath/&#8217;);</li>
<li>$soap-&gt;register(</li>
<li style="padding-left: 15px;">&#8216;hola&#8217;,// nom del mètode</li>
<li style="padding-left: 15px;">array(&#8216;nom&#8217; =&gt; &#8216;xsd:string&#8217;, &#8216;cognom&#8217; =&gt; &#8216;xsd:string&#8217; ),// variables d&#8217;entrada</li>
<li style="padding-left: 15px;">array(&#8216;return&#8217; =&gt; &#8216;xsd:string&#8217;),    // retorn</li>
<li style="padding-left: 15px;">&#8216;uri:hola&#8217;,// namespace</li>
<li style="padding-left: 15px;">&#8216;uri:hola/get&#8217;,// SOAPAction</li>
<li style="padding-left: 15px;">&#8216;rpc&#8217;,// style</li>
<li style="padding-left: 15px;">&#8216;encoded&#8217;// use</li>
<li>);</li>
<li>function hola( $nom, $cognom ){</li>
<li style="padding-left: 15px;">return &#8220;Hola &#8220;.$nom.&#8221; &#8220;.$cognom.&#8221;!&#8221;;</li>
<li>}</li>
<li>$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : &#8221;;</li>
<li>$soap-&gt;service($HTTP_RAW_POST_DATA);</li>
</ol>
<h2><strong>Client.php</strong></h2>
<ol>
<li>require_once(&#8216;NUSOAP/nusoap.php&#8217;);</li>
<li>try</li>
<li style="padding-left: 15px;">$client = new nusoap_client(&#8216;http://latevaurl.cat/elteupath/server.php?wsdl&#8217;);</li>
<li style="padding-left: 15px;">$result = $client-&gt;call(&#8216;Hola&#8217;, array(&#8216;nom&#8217; =&gt; &#8220;Leo&#8221;, &#8216;cognom&#8217; =&gt; &#8220;Messi&#8221; ) );</li>
<li style="padding-left: 15px;">print_r($result);</li>
<li>}</li>
<li>catch( SoapFault $e ){</li>
<li style="padding-left: 15px;">echo &#8216;EXCEPTION=&#8217;.$e;</li>
<li>}</li>
</ol>
<p>Recordeu que per a què el codi funcioni cal tenir activat SOAP a Apache. Podeu seguir <a title="Install SOAP" href="http://www.php.net/manual/en/soap.installation.php" target="_blank">aquestes intruccions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2011/04/12/web-service-amb-php-i-nusoap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP.JS, les funcions PHP en JS</title>
		<link>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/</link>
		<comments>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 12:04:03 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://openpitu.com/?p=145</guid>
		<description><![CDATA[De la mà de <a title="Article font." href="http://www.desarrolloweb.com/articulos/phpjs.html" target="_blank">Desarrolloweb</a> he trobat aquesta llibreria JS que ens pot anar bé quan estem programant en JS i necessitem algunes funcions pròpies de PHP. Es tracta d'un projecte de codi lliure que pretén donar a JS la potència del PHP. Com és normal no totes les funcions de PHP es poden passar a JS.
<a href="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png"><img class="aligncenter size-full wp-image-147" title="phpjs" src="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png" alt="" width="170" height="90" /></a>
Podeu trobar la <a title="Funcions de PHP.JS" href="http://phpjs.org/functions/index" target="_blank">API de la llibreria</a> a la web oficial del projecte. Personalment encara no l'he provat, però no tardaré en mirar-me detalladament l'ús d'aquestes funcions, la seva utilitat i, si és un projecte pràctic i útil, no dubtaré en fer algun altre post ensenyant el seu ús. Podeu baixar-vos les <a title="Packages." href="http://phpjs.org/packages/index" target="_blank">llibreries</a> a la web oficial en diverses versions, segons la que més us convingui.
Per posar un exemple he estat mirant com han traduït la funció <a href="http://phpjs.org/functions/setcookie:509">SETCOOKIE</a>:
<ol class="code">
	<li>setcookie('SO', 'Linux');</li>
</ol>
<a title="PHP.JS, les funcions PHP en JS" href="?p=145">Seguir llegint...</a>]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-3" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-3" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-3" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-3" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/&amp;title=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-3" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F28%2Fphp-js-les-funcions-php-en-js%2F&amp;t=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-3" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F08%2F28%2Fphp-js-les-funcions-php-en-js%2F&amp;text=PHP.JS%2C%20les%20funcions%20PHP%20en%20JS&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>De la mà de <a title="Article font." href="http://www.desarrolloweb.com/articulos/phpjs.html" target="_blank">Desarrolloweb</a> he trobat aquesta llibreria JS que ens pot anar bé quan estem programant en JS i necessitem algunes funcions pròpies de PHP. Es tracta d&#8217;un projecte de codi lliure que pretén donar a JS la potència del PHP. Com és normal no totes les funcions de PHP es poden passar a JS.</p>
<p><a href="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png"><img class="aligncenter size-full wp-image-147" title="phpjs" src="http://openpitu.com/wp-content/uploads/2010/08/phpjs.png" alt="" width="170" height="90" /></a></p>
<p>Podeu trobar la <a title="Funcions de PHP.JS" href="http://phpjs.org/functions/index" target="_blank">API de la llibreria</a> a la web oficial del projecte. Personalment encara no l&#8217;he provat, però no tardaré en mirar-me detalladament l&#8217;ús d&#8217;aquestes funcions, la seva utilitat i, si és un projecte pràctic i útil, no dubtaré en fer algun altre post ensenyant el seu ús. Podeu baixar-vos les <a title="Packages." href="http://phpjs.org/packages/index" target="_blank">llibreries</a> a la web oficial en diverses versions, segons la que més us convingui.</p>
<p>Per posar un exemple he estat mirant com han traduït la funció <a href="http://phpjs.org/functions/setcookie:509">SETCOOKIE</a>:</p>
<ol class="code">
<li>setcookie(&#8216;SO&#8217;, &#8216;Linux&#8217;);</li>
</ol>
<p>Aviat ho provaré i ja comentaré més detalladament com funciona i si realment ens pot estalviar bastant feina que fins ara havíem de fer nosaltres.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/08/28/php-js-les-funcions-php-en-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP i JavaScript no intrusiu</title>
		<link>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/</link>
		<comments>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:32:50 +0000</pubDate>
		<dc:creator>Pitu Sabadí</dc:creator>
				<category><![CDATA[How-to's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programació]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://localhost/open-pitu/?p=21</guid>
		<description><![CDATA[Últimament està molt de moda el concepte Scripts no intrusius. Per a que un script es pugui considerar no intrusiu ha de tenir una sèrie de característiques. Ha de ser usable, legible i en la mesura que es pugui accessible (ja s'entén que no sempre pot duncionar tot amb JS desactivat). A més, cal tenir separada l'estructura, dels scripts i dels estils, ja que així tot és més mantenible.La idea principal si parlem de JavaScript és que per a que l'script funcioni només calgui incloure el fitxer.js i ja tot passi a funcionar, sense que hi hagi la necessitat de fer crides a funcions JavaScript des del fitxer de l'estructura (html, php...).
En aquest how-to ens centrarem com podem obtenir des d'un fitxer JavaScript el valor de diverses variables que controlem/calculem des del PHP. A continuació s'explica el contingut principal de l'<a title="Tots els fitxers." href="files/ajax_example.rar">exemple</a>.Primer de tot veurem l'estructura del body del document d'exemple...]]></description>
			<content:encoded><![CDATA[<div class="besocial"><ul class="center"><li><a class="besocial-meneame" id="besocial-meneame-4" rel="nofollow" href="http://www.meneame.net/submit.php?url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Submit this to Meneame"><span class="besocial-text">Meneame</span></a></li><li><a class="besocial-divoblogger" id="besocial-divoblogger-4" rel="nofollow" href="http://divoblogger.com/submit.php?url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Submit this to Divoblogger"><span class="besocial-text">Divoblogger</span></a></li><li><a class="besocial-bitacoras" id="besocial-bitacoras-4" rel="nofollow" href="http://bitacoras.com/anotaciones/openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/" title="Submit this to Bitacoras.com"><span class="besocial-text">Bitacoras</span></a></li><li><a class="besocial-delicious" id="besocial-delicious-4" rel="nofollow" href="http://www.delicious.com/save?v=5&amp;noui&amp;url=http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/&amp;title=PHP%20i%20JavaScript%20no%20intrusiu" title="Bookmark this in Delicious"><span class="besocial-text">Delicious</span></a></li><li><a class="besocial-facebook" id="besocial-facebook-4" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fphp-i-javascript-no-intrusiu%2F&amp;t=PHP%20i%20JavaScript%20no%20intrusiu&amp;src=sp" title="Share this on Facebook"><span class="besocial-text">Facebook</span></a></li><li><a class="besocial-twitter" id="besocial-twitter-4" rel="nofollow" href="http://twitter.com/share?url=http%3A%2F%2Fopenpitu.com%2F2010%2F06%2F21%2Fphp-i-javascript-no-intrusiu%2F&amp;text=PHP%20i%20JavaScript%20no%20intrusiu&via=openpitu" title="Tweet this"><span class="besocial-text">Twitter</span></a></li><g:plusone></g:plusone></ul></div>
<p>[How-to del blog antic.]</p>
<p>Últimament està molt de moda el concepte Scripts no intrusius. Per a que un script es pugui considerar no intrusiu ha de tenir una sèrie de característiques. Ha de ser usable, legible i en la mesura que es pugui accessible (ja s&#8217;entén que no sempre pot duncionar tot amb JS desactivat). A més, cal tenir separada l&#8217;estructura, dels scripts i dels estils, ja que així tot és més mantenible.La idea principal si parlem de JavaScript és que per a que l&#8217;script funcioni només calgui incloure el fitxer.js i ja tot passi a funcionar, sense que hi hagi la necessitat de fer crides a funcions JavaScript des del fitxer de l&#8217;estructura (html, php&#8230;).</p>
<p>En aquest how-to ens centrarem com podem obtenir des d&#8217;un fitxer JavaScript el valor de diverses variables que controlem/calculem des del PHP. A continuació s&#8217;explica el contingut principal de l&#8217;<a title="Tots els fitxers." href="files/ajax_example.rar">exemple</a>.Primer de tot veurem l&#8217;estructura del body del document d&#8217;exemple:</p>
<ol class="code">
<li>&lt;body&gt;</li>
<li> &lt;div id=&#8221;content&#8221;&gt;&lt;/div&gt;</li>
<li>&lt;/body&gt;</li>
</ol>
<p>A continuació l&#8217;estructura de dades que obtenim des de php:</p>
<ol class="code">
<li class="t0"><code>&lt;?php</code></li>
<li class="t2"><code> $var1 = "hyds";</code></li>
<li class="t2"><code> $var2 = "WICAST";</code></li>
<li class="t2"><code> $var3 = "SMC";</code></li>
<li class="t2"><code> echo $var1.".".$var2.".".$var3;</code></li>
<li class="t0"><code>?&gt;</code></li>
</ol>
<p>Finalment veurem com obtenir aquestes variables i fer les crides que  necessitem:</p>
<ol class="code">
<li class="t0"><code>function get_variables_php(){</code></li>
<li class="t2"><code> var object;</code></li>
<li class="t2"><code> $.ajax({</code></li>
<li class="t3"><code> async: false,</code></li>
<li class="t3"><code> type: "post",</code></li>
<li class="t3"><code> url: PHP_VARIABLE_PATH,</code></li>
<li class="t3"><code> success: function( vars ){</code></li>
<li class="t4"><code> object = get_object( vars );</code></li>
<li class="t4"><code> // THE CODE THAT USE THIS OBJECT</code></li>
<li class="t3"><code> }</code></li>
<li class="t2"><code> });</code></li>
<li class="t0"><code>}</code></li>
</ol>
<p>La funció que acabem de veure utilitza:</p>
<ol class="code">
<li class="t0"><code>function get_object( vars ){</code></li>
<li class="t2"><code> vars = vars.split(\'.\',3);</code></li>
<li class="t2"><code> this.var1 = vars[0];</code></li>
<li class="t2"><code> this.var2 = vars[2];</code></li>
<li class="t2"><code> this.var3 = vars[3];</code></li>
<li class="t2"><code> return this;</code></li>
<li class="t0"><code>}</code></li>
</ol>
<p>A partir d&#8217;aquí es podria fer definint els events que desitjem per a què  actuï tal i com necessitem fent les crides en funció d&#8217;aquestes  variables. El link de referència ens porta a un post de Cristal Web  titulat: <a title="Link de referència" href="http://www.cristalab.com/tips/javascript-no-intrusivo-css-y-php-c31507l/">&#8220;Javascript no intrusivo, CSS y PHP&#8221;</a>. Es tracta de literatura  per iniciar-se en el concepte de &#8220;Unobtrusive Scripting&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://openpitu.com/2010/06/21/php-i-javascript-no-intrusiu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
