<?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>Zarpele! Linux and Software Libre &#187; Php</title>
	<atom:link href="http://www.zarpele.com.ar/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zarpele.com.ar</link>
	<description>GNU/Linux, Programación, Tecnologia...</description>
	<lastBuildDate>Thu, 12 Jan 2012 14:26:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Distancia de Levenshtein con PHP</title>
		<link>http://www.zarpele.com.ar/2011/11/distancia-de-levenshtein-con-php/</link>
		<comments>http://www.zarpele.com.ar/2011/11/distancia-de-levenshtein-con-php/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 22:50:54 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Levenshtein]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2825</guid>
		<description><![CDATA[<p>Se llama, <strong>Distancia de Levenshtein</strong>, distancia de edición, o distancia entre palabras, a la cantidad de inserciones, eliminaciones o cambios de caracteres que hay que realizar para convertir una palabra en otra.</p>
<p>Por ejemplo:</p>
<p style="padding-left: 30px;">casa → cala (sustitución de &#8216;s&#8217; por &#8216;l&#8217;) osea que d(casa,cala) = 1</p>
<p style="padding-left: 30px;">cala → calla (inserción de &#8216;l&#8217; entre &#8216;l&#8217; y &#8216;a&#8217;) osea que d(cala, calla) = 1</p>
<p style="padding-left: 30px;">calla → calle (sustitución de &#8216;a&#8217; por &#8216;e&#8217;) osea que d(calla, calle) = 1</p>
<p style="padding-left: 30px;">anemia → anestesia (3 inserciones &#8216;ste&#8217;, sustitución de &#8216;m&#8217; por &#8216;s&#8217;) osea que d(anemia, anestesia) = 4</p>
<p>Luego de esta pequeña intro, veremos lo sencillo que resulta calcular <a href="http://php.net/manual/es/function.levenshtein.php">distancias de Levenshtein con PHP.</a></p>
<pre class="brush: php;">
&lt;?php
echo levenshtein('anemia', 'anestesia');
?&gt;</pre>
<p><em>Resultado:</em></p>
<pre class="brush: php;">4</pre>
<p><strong>Fácil!</strong>, lo bueno es que con PHP, la función esta implementada de forma nativa en contra de otros lenguajes como C++, C#, Java, etc. en donde uno debe programar la función distancia.</p>
<p>Les dejo a continuación un pequeño script, que toma como entrada un conjunto de palabras y genera una matriz con las distancias de Levenshtein asociadas una por una. Esta matriz tiene la particularidad de que es simétrica respecto a su diagonal principal donde todos sus elementos son 0.</p>
<pre class="brush: php;">
&lt;?php
$data = array('Ana', 'Francisco', 'Belen', 'Zulma', 'Pedro', 'Esteban', 'Amy', 'Paula', 'Claudia', 'Anama',
   'Jorge', 'Estanislao', 'Cristian', 'Adrian', 'Clara', 'Fernando', 'Alan', 'Charlize', 'Cameron', 'Anahi'); 

?&gt;
&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;/td&gt;
        &lt;?php foreach($data as $value): ?&gt;
        &lt;td&gt;&lt;?php echo $value?&gt;&lt;/td&gt;
        &lt;?php endforeach;?&gt;
    &lt;tr&gt;
    &lt;?php foreach($data as $value): ?&gt;
    &lt;tr&gt;
    &lt;td&gt;&lt;?php echo $value?&gt;&lt;/td&gt;
    &lt;?php foreach($data as $value2):?&gt;
        &lt;td&gt;&lt;?php echo levenshtein($value, $value2);?&gt;&lt;/td&gt;
    &lt;?php endforeach;?&gt;
        &lt;/tr&gt;
    &lt;?php endforeach;?&gt;
&lt;/table&gt;
</pre>
<p>El resultado del anterior ejemplo, seria:</p>
<p><a href="http://www.zarpele.com.ar/wp-content/uploads/2011/11/Levenshtein_zarpele.png" rel="shadowbox"><img src="http://www.zarpele.com.ar/wp-content/uploads/2011/11/Levenshtein_zarpele-1024x431.png" alt="" title="Levenshtein_zarpele" width="600" class="aligncenter size-large wp-image-2830" /></a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2825" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;submitHeadline=Distancia+de+Levenshtein+con+PHP&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;title=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;title=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;title=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;bm_description=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;T=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;title=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;title=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Distancia+de+Levenshtein+con+PHP+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F11%2Fdistancia-de-levenshtein-con-php%2F&amp;t=Distancia+de+Levenshtein+con+PHP" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2825').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2011/11/distancia-de-levenshtein-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Clase simple para obtener información de videos de YouTube v1.1</title>
		<link>http://www.zarpele.com.ar/2011/08/php-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1/</link>
		<comments>http://www.zarpele.com.ar/2011/08/php-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 19:01:48 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programacion Web]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2711</guid>
		<description><![CDATA[<p><img alt="" src="http://code.google.com/p/simple-class-youtube/logo?cct=1310695580" class="alignleft" width="119" height="55" />Hace bastante tiempo ya, <em>Septiembre 24 del 2010</em> para ser mas especifico, escribí una clase en <a target="_blank" href="http://www.zarpele.com.ar/tag/php/">PHP</a> para poder <a href="http://www.zarpele.com.ar/2010/09/php-clase-simple-para-obtener-informacion-de-videos-de-youtube/" target="_blank">obtener información de los videos de Youtube</a> liberada bajo licencia <a href="http://www.gnu.org/licenses/gpl.html" target="_blank" title="Ver mas...">GPL/v2</a>. </p>
<p>Esta entrada tuvo muchas visitas y comentarios, así que decidí sacar la versión 1.1 con nuevas funcionalidades y mejoras en performance. El código lo pueden encontrar en este proyecto de Google Code:</p>
<ul>
<li><a href="http://code.google.com/p/simple-class-youtube/" target="_blank">http://code.google.com/p/simple-class-youtube/</a></li>
</ul>
<p>En el mismo podrán hacer comentarios, sugerencias y bajarse el código con un ejemplo. También encontraran una <a target="_blank" href="http://code.google.com/p/simple-class-youtube/wiki/WikiPage" title="Wiki Simple Class Youtube">Wiki</a> para poder empezar a usar la clase&#8230;</p>
<p>En esta v1.1, podemos obtener los siguientes datos:</p>
<ul>
<li>Title.</li>
<li>Valid (is a valid video?)</li>
<li>Published.</li>
<li>Updated.</li>
<li>Category.</li>
<li>Tags.</li>
<li>Content.</li>
<li>Description.</li>
<li>Link.</li>
<li>Images.</li>
<li>Author Name.</li>
<li>Author Url.</li>
<li>Author Uri.</li>
<li>Embed Code. </li>
</ul>
<p>Les dejo el código para aquellos que les gusta el copy/paste&#8230;<br />
<span style="color:#009900"><em>youtube.class.php</em></span></p>
<pre class="brush: php;">&lt;?php
/*
 * Name: Simple Class YouTube
 * Description: Get Information of YouTube video
 * Site: http://www.zarpele.com.ar
 * License: GNU GENERAL PUBLIC LICENSE (http://www.gnu.org/licenses/gpl.html)
 * Version: 1.1
 */

class Youtube
{
    var $data = '';
    var $xml = '';
    var $id = '';

    private function youtubeCurl($url){
        $browser_id = 'none';
        $curl_handle = curl_init();
        $options = array
        (
            CURLOPT_URL =&gt; $url,
            CURLOPT_HEADER =&gt; false,
            CURLOPT_RETURNTRANSFER =&gt; true,
            CURLOPT_USERAGENT =&gt; $browser_id
        );
        curl_setopt_array($curl_handle, $options);
        $server_output = curl_exec($curl_handle);
        curl_close($curl_handle);
        return $server_output;
    }

    public function __construct($id)
    {
        if (strlen($id) &gt;= 22)
        {
            parse_str( parse_url( $id, PHP_URL_QUERY ) );
            $this-&gt;id = $v;
        }
        else
        {
            $this-&gt;id = $id;
        }

        $url = 'http://gdata.youtube.com/feeds/videos/' . $this-&gt;id;
        $server_output = $this-&gt;youtubeCurl($url);

        if($server_output == 'Invalid id'){
            return false;
        }else{
            $this-&gt;data = $server_output;
            $description = $this-&gt;prepareDescription();
            $this-&gt;xml = new SimpleXMLElement($this-&gt;data);
            $this-&gt;xml-&gt;addChild('description', $description);
            return true;
        }
    }

    public function getData(){
        return $this-&gt;data;
    }

    public function getXml(){
        return $this-&gt;xml;
    }

    public function valid(){
        if(empty($this-&gt;data)){
            return false;
        }else{
            return true;
        }
    }

    /* DATA VIDEO */
    public function getTitle(){
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;title;
        }else{
            return false;
        }
    }

    public function getPublished()
    {
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;published;
        }else{
            return false;
        }
    }

    public function getUpdated()
    {
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;updated;
        }else{
            return false;
        }
    }

    public function getCategory()
    {
        if ($this-&gt;valid()){
            $category = '';
            for ($i = 0; $i &lt; count($this-&gt;xml-&gt;category);$i++){
                if ($this-&gt;xml-&gt;category[$i]['scheme'] == 'http://gdata.youtube.com/schemas/2007/categories.cat'){
                    $category = $this-&gt;xml-&gt;category[$i]['label'];
                    break;
                }
            }
            return $category;
        }else{
            return false;
        }
    }

    public function getTags(){
        if ($this-&gt;valid()){
            $tags = array();
            for ($i = 0; $i &lt; count($this-&gt;xml-&gt;category);$i++){
                if ($this-&gt;xml-&gt;category[$i]['scheme'] == 'http://gdata.youtube.com/schemas/2007/keywords.cat'){
                    $name = $this-&gt;xml-&gt;category[$i]['term'];
                    array_push($tags, $name);
                }
            }
            return $tags;
        }else{
            return false;
        }
    }

    public function getContent()
    {
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;content;
        }else{
            return false;
        }
    }

    public function getDescription()
    {
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;description;
        }else{
            return false;
        }
   }

    private function prepareDescription()
    {
        $startString = &quot;&lt;media:description type='plain'&gt;&quot;;
        $endString = &quot;&lt;/media:description&gt;&quot;;

        $starLocation = strpos($this-&gt;data, $startString);
        $tempString = substr($this-&gt;data, $starLocation);

        $endLocation = strpos($tempString, $endString);
        $description = substr($tempString, 0, $endLocation);

        if (empty($description))
        {
            $description=false;
        }
        else
        {
            $description = substr($description,strlen($startString));
        }

        return $description;
    }

    public function getUrl()
    {
        if ($this-&gt;valid()){
            return 'http://www.youtube.com/watch?v='.$this-&gt;id;
        }else{
            return false;
        }
    }

    public function getImageUrl($option)
    {
        if ($this-&gt;valid()){
            if($option == 'default'){
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/default.jpg';
            }
            if($option == 0){
                return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/0.jpg';
            }
            if($option == 1){
                return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/1.jpg';
            }
            if($option == 2){
                return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/2.jpg';
            }
            if($option == 3){
                return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/3.jpg';
            }
        }else{
            return false;
        }
    }

    /* AUTHOR MEHTODS */
    public function getAuthorName(){
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;author-&gt;name;
        }else{
            return false;
        }
    }

    public function getAuthorUrl(){
        if ($this-&gt;valid()){
            return 'http://www.youtube.com/user/'.$this-&gt;getAuthorName();
        }else{
            return false;
        }
    }

    public function getAuthorUri(){
        if ($this-&gt;valid()){
            return $this-&gt;xml-&gt;author-&gt;uri;
        }else{
            return false;
        }
    }

    /* see: http://code.google.com/apis/youtube/player_parameters.html */
    public function getEmbeb($options = NULL)
    {
        $width = $options['width'];
        if (!isset($options['width'])){
            $width = 425;
        } //Width
        unset($options['width']);

        $height = $options['height'];
        if (!isset($options['height'])){
            $height = 349;
        } //Height
        unset($options['height']);

        $secure = '';
        if (isset($options['https'])){
            if ($options['https'] == 1){
                $secure = 's';
                unset($options['https']);
            }else{
                $secure = '';
                unset($options['https']);
            }
        }

        if(empty($options)){
            $exclamation = '&quot;';
        }else{
            $exclamation = '?';
        }

        $embeb_code = '&lt;iframe class=&quot;youtube-player&quot; type=&quot;text/html&quot; width=&quot;'.$width.'&quot; height=&quot;'.$height.'&quot; src=&quot;http'.$secure.'://www.youtube.com/embed/'.$this-&gt;id.$exclamation;

        $i = 1;
        foreach($options as $key =&gt; $value){
            if($i == count($options)){
                $embeb_code .= $key.'='.$value.'&quot;';
            }else{
                $embeb_code .= $key.'='.$value.'&amp;';
            }
            $i++;
        }
        $embeb_code .= '&gt;&lt;/iframe&gt;';

        return $embeb_code;
    }
}

?&gt;
</pre>
<p><span style="color:#009900"><em>sample.php</em></span></p>
<pre class="brush: php;">&lt;?php
/*
 * Name: Simple Class Info YouTube
 * Description: Get Information of YouTube video
 * Site: http://www.zarpele.com.ar
 * License: GNU GENERAL PUBLIC LICENSE (http://www.gnu.org/licenses/gpl.html)
 * Version: 1.1
 */?&gt;
&lt;?php
require_once 'youtube.class.php';

$url = 'http://www.youtube.com/watch?v=5ocq6_3-nEw';
$youtube = new Youtube($url);

//$id = '5ocq6_3-nEw';
//$youtube = new Youtube($id);
?&gt;

&lt;h2&gt;Video Data&lt;/h2&gt;
&lt;p&gt;
    &lt;strong&gt;Title: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getTitle()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Valid: &lt;/strong&gt;
    &lt;?php var_dump($youtube-&gt;valid())?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Published: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getPublished()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Updated: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getUpdated()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Category: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getCategory()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Tags: &lt;/strong&gt;
    &lt;?php var_dump($youtube-&gt;getTags())?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Content: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getContent()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Description: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getDescription()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Link: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getUrl()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Imagen: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getImageUrl('default')?&gt;&lt;br/&gt;
    &lt;img src=&quot;&lt;?php echo $youtube-&gt;getImageUrl('default')?&gt;&quot; alt=&quot;&quot;/&gt;
    &lt;img src=&quot;&lt;?php echo $youtube-&gt;getImageUrl(0)?&gt;&quot; alt=&quot;&quot;/&gt;
    &lt;img src=&quot;&lt;?php echo $youtube-&gt;getImageUrl(1)?&gt;&quot; alt=&quot;&quot;/&gt;
    &lt;img src=&quot;&lt;?php echo $youtube-&gt;getImageUrl(2)?&gt;&quot; alt=&quot;&quot;/&gt;
    &lt;img src=&quot;&lt;?php echo $youtube-&gt;getImageUrl(3)?&gt;&quot; alt=&quot;&quot;/&gt;
&lt;/p&gt;

&lt;h2&gt;Author Data&lt;/h2&gt;
&lt;p&gt;
    &lt;strong&gt;Author Name: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getAuthorName()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Author Url: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getAuthorUrl()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Author Uri: &lt;/strong&gt;
    &lt;?php echo $youtube-&gt;getAuthorUri()?&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;strong&gt;Video: &lt;/strong&gt;&lt;br/&gt;
    &lt;?php $options = array('autoplay' =&gt; 1);?&gt;
    &lt;?php echo $youtube-&gt;getEmbeb($options);?&gt;
&lt;/p&gt;</pre>
<p><strong>Google Code Page | </strong><a target="_blank" href="http://code.google.com/p/simple-class-youtube/">http://code.google.com/p/simple-class-youtube/</a></p>
<p><strong>Deja tu comentario&#8230;</strong></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2711" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;submitHeadline=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;bm_description=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;T=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F08%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1%2F&amp;t=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+v1.1" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2711').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2011/08/php-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>[PHP]Leer XML con SimpleXML</title>
		<link>http://www.zarpele.com.ar/2011/04/php-leer-xml-con-simplexml/</link>
		<comments>http://www.zarpele.com.ar/2011/04/php-leer-xml-con-simplexml/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 12:15:12 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2528</guid>
		<description><![CDATA[<p><a href="http://www.zarpele.com.ar/wp-content/uploads/2011/04/php_simplexml.jpg" rel="shadowbox"><img src="http://www.zarpele.com.ar/wp-content/uploads/2011/04/php_simplexml.jpg" alt="" title="php_simplexml" width="150" class="aligncenter size-full wp-image-2574" /></a><br />
Una de las cosas mas estúpidas y de noob que he echo programando, es hacer una función que lee los datos con estructura <a href="http://es.wikipedia.org/wiki/Extensible_Markup_Language" target="_blank"><em>XML</em></a>, como la que ven acá abajo&#8230;</p>
<pre class="brush: php;">public function getTitle($data)
    {
        $startString = '&lt;author&gt;';
        $endString = '&lt;/author&gt;';
        $tempString = strstr($data, $startString);
        $endLocation = strpos($tempString, $endString);
        $title = substr($tempString, 0, $endLocation);

        if (empty($title))
        {
            $title = false;
        }
        else
        {
            $title = substr($title,strlen($startString));
        }

        return $title;
    }</pre>
<p>Esta función busca el valor dentro de las etiquetas <font color="#CC0000">&lt;author&gt;&lt;/author&gt;</font>, y en caso de no encontrarlo, devuelve <em>false</em>. Si bien esta función funciona (valga la redundancia), no es de lo mas eficiente que podemos hacer.</p>
<p>Una de las formas de manejar <em>XML</em> de forma nativa es <a href="http://www.php.net/manual/es/intro.simplexml.php" target="_blank">SimpleXML</a>, una extensión en <em>PHP</em> que proporciona un juego de herramientas muy simple y fácilmente usable para convertir XML en un objeto que pueda ser procesado con selectores normales de propiedades e iteradores de array.</p>
<p>Si. Manejemos toda la estructura <em>XML</em> como ya sabemos (?? <img src='http://www.zarpele.com.ar/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), como un objeto!</p>
<p>Les voy a mostrar un ejemplo con un XML simple&#8230;</p>
<pre class="brush: php;">$xml_data = &quot;&lt;?xml version='1.0'?&gt;
    &lt;document&gt;
        &lt;date&gt;04-05-2011&lt;/date&gt;
        &lt;author&gt;Zarpele&lt;/author&gt;
        &lt;description&gt;Linux and Sofware Libre&lt;/description&gt;
        &lt;content&gt;Simple example for SimpleXML use with PHP&lt;/content&gt;
    &lt;/document&gt;&quot;;

$xml = new SimpleXMLElement($xml_data);
echo $xml-&gt;author;</pre>
<p>Simple, Rapido y Facil, obtenemos como resultado <em>&#8220;Zarpele&#8221;</em></p>
<p>Este ejemplo es para leer un <em>XML</em> desde una URL especifica, por ejemplo el feed del blog.</p>
<pre class="brush: php;">$xml = simplexml_load_file('http://www.zarpele.com.ar/feed/');
echo $xml-&gt;channel-&gt;title;
foreach ($xml-&gt;channel-&gt;item as $noticia) {
  echo $noticia-&gt;title;
  echo '&lt;br/&gt;';
}</pre>
<p>Lo que hace este código, es imprimir el titulo del blog y todos los títulos de las entradas que están en el feed.</p>
<p>Mas adelante, les prometo traerle la parte 2 con un manejo mas avanzado, coméntale si te gustó.</p>
<p>Saludos&#8230;</p>
<p><strong>More Info | <a href="http://www.php.net/manual/es/book.simplexml.php" target="_blank">http://www.php.net/manual/es/book.simplexml.php</a><br />
More Info | <a href="http://conf.phpquebec.com/slides/2007/advanced_xml.pdf" target="_blank">http://conf.phpquebec.com/slides/2007/advanced_xml.pdf</a></strong></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2528" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;submitHeadline=%5BPHP%5DLeer+XML+con+SimpleXML&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;title=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;title=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;title=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;bm_description=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;T=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;title=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;title=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+%5BPHP%5DLeer+XML+con+SimpleXML+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F04%2Fphp-leer-xml-con-simplexml%2F&amp;t=%5BPHP%5DLeer+XML+con+SimpleXML" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2528').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2011/04/php-leer-xml-con-simplexml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[PHP] Variables de Apache</title>
		<link>http://www.zarpele.com.ar/2011/01/php-variables-de-apache/</link>
		<comments>http://www.zarpele.com.ar/2011/01/php-variables-de-apache/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 09:32:59 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2442</guid>
		<description><![CDATA[<p>Estas variables son creadas por el servidor web Apache (<a href="http://www.apache.org/">http://www.apache.org/</a>). Si se está utilizando otro servidor web, no hay garantía de que proporcione las mismas variables; pueden faltar algunas, o proporcionar otras no listadas aquí. Dicho esto, también están presentes las variables de la especificación CGI 1.1, por lo que también se deben tener en cuenta.</p>
<p>Tenga en cuenta que unas pocas, como mucho, de estas variables van a estar disponibles (o simplemente tener sentido) si se ejecuta PHP desde la línea de comandos.</p>
<pre class="brush: php;">
&lt;?php
//Qué revisión de la especificación CGI está usando el servidor; por ejemplo ’CGI/1.1’.
echo '&lt;p&gt;'.var_dump($_SERVER['GATEWAY_INTERFACE']).'&lt;/p&gt;';

//El nombre del equipo servidor en el que se está ejecutando el script. Si el script se está ejecutando
//en un servidor virtual, este será el valor definido para dicho servidor virtual.
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_NAME']).'&lt;/p&gt;';

//Una cadena de identificación del servidor, que aparece en las cabeceras al responderse a las
//peticiones.
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_SOFTWARE']).'&lt;/p&gt;';

//Nombre y revisión del protocolo a través del que se solicitó la página; p.ej. ’HTTP/1.0’;
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_PROTOCOL']).'&lt;/p&gt;';

//Qué método de petición se usó para acceder a la página; p.ej. ’GET’, ’HEAD’, ’POST’, ’PUT’.
echo '&lt;p&gt;'.var_dump($_SERVER['REQUEST_METHOD']).'&lt;/p&gt;';

//La cadena de la petición, si la hubo, mediante la que se accedió a la página.
echo '&lt;p&gt;'.var_dump($_SERVER['QUERY_STRING']).'&lt;/p&gt;';

//El directorio raíz del documento bajo el que se ejecuta el script, tal y como está definido en el
//fichero de configuración del servidor.
echo '&lt;p&gt;'.var_dump($_SERVER['DOCUMENT_ROOT']).'&lt;/p&gt;';

//Los contenidos de la cabecera Accept: de la petición actual, si hay alguna.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_ACCEPT']).'&lt;/p&gt;';

//Los contenidos de la cabecera Accept-Charset: de la petición actual, si hay alguna. Por
//ejemplo: ’iso-8859-1,*,utf-8’.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_ACCEPT_CHARSET']).'&lt;/p&gt;';

//Los contenidos de la cabecera Accept-Encoding: de la petición actual, si la hay. Por ejemplo:
//’gzip’.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_ENCODING']).'&lt;/p&gt;';

//Los contenidos de la cabecera Accept-Language: de la petición actual, si hay alguna. Por
//ejemplo: ’es-ar’.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']).'&lt;/p&gt;';

//Los contenidos de la cabecera Connection: de la petición actual, si hay alguna. Por ejemplo:
//’Keep-Alive’.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_CONNECTION']).'&lt;/p&gt;';

//Los contenidos de la cabecera Host: de la petición actual, si hay alguna.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_HOST']).'&lt;/p&gt;';

//La dirección de la página (si la hay) desde la que el navegador saltó a la página actual. Esto lo
//establece el navegador del usuario; no todos los navegadores lo hacen.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_REFERER']).'&lt;/p&gt;';

//Los contenidos de la cabecera User_Agent: de la petición actual, si hay alguna. Indica el
//navegador que se está utilizando para ver la página actual; p.ej. Mozilla/4.5 [en] (X11; U;
//Linux 2.2.9 i586). Entre otras cosas, se puede usar este valor con get_browser() para adaptar la
//funcionalidad de la página a las posibilidades del navegador del usuario.
echo '&lt;p&gt;'.var_dump($_SERVER['HTTP_USER_AGENT']).'&lt;/p&gt;';

//La dirección IP desde la que el usuario está viendo la página actual.
echo '&lt;p&gt;'.var_dump($_SERVER['REMOTE_ADDR']).'&lt;/p&gt;';

//El puerto que se está utilizando en la máquina del usuario para comunicarse con el servidor web.
echo '&lt;p&gt;'.var_dump($_SERVER['REMOTE_PORT']).'&lt;/p&gt;';

//La vía de acceso absoluta del script que se está ejecutando.
echo '&lt;p&gt;'.var_dump($_SERVER['SCRIPT_FILENAME']).'&lt;/p&gt;';

//El valor que se haya dado a la directiva SERVER_ADMIN (en Apache) en el fichero de
//configuración del servidor web. Si el script se está ejecutando en un servidor virtual, será el valor
//definido para dicho servidor virtual.
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_ADMIN']).'&lt;/p&gt;';

//El puerto del equipo servidor que está usando el servidor web para la comunicación. Para
//configuraciones por defecto, será ’80’; al usar SSL, por ejemplo, cambiará al puerto que se haya
//definido como seguro para HTTP.
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_PORT']).'&lt;/p&gt;';

//Una cadena que contiene la versión del servidor y el nombre del servidor virtual que es añadida a
//las páginas generadas por el servidor, si está característica está activa.
echo '&lt;p&gt;'.var_dump($_SERVER['SERVER_SIGNATURE']).'&lt;/p&gt;';

//Vía de acceso basada en el sistema de ficheros- (no el directorio raíz del documento-) del script en
//cuestión, después de que el servidor haya hecho la conversión virtual-a-real.
echo '&lt;p&gt;'.var_dump($_SERVER['PATH_TRANSLATED']).'&lt;/p&gt;';

//Contiene la vía de acceso del script actual. Es útil para páginas que necesitan apuntar a sí mismas.
echo '&lt;p&gt;'.var_dump($_SERVER['SCRIPT_NAME']).'&lt;/p&gt;';

//La URI que se dió para acceder a esta página; por ejemplo, ’/index.html’.
echo '&lt;p&gt;'.var_dump($_SERVER['REQUEST_URI']).'&lt;/p&gt;';
?&gt;</pre>
<p>Saludos&#8230;</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2442" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;submitHeadline=%5BPHP%5D+Variables+de+Apache&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;title=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;title=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;title=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;bm_description=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;T=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;title=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;title=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+%5BPHP%5D+Variables+de+Apache+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fphp-variables-de-apache%2F&amp;t=%5BPHP%5D+Variables+de+Apache" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2442').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2011/01/php-variables-de-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ordenar array multidimensional por un campo con PHP</title>
		<link>http://www.zarpele.com.ar/2011/01/ordenar-array-multidimensional-por-un-campo-con-php/</link>
		<comments>http://www.zarpele.com.ar/2011/01/ordenar-array-multidimensional-por-un-campo-con-php/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 20:45:32 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programacion Web]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2433</guid>
		<description><![CDATA[<p style="padding-left: 30px;">Una de las razones por al que creé el blog, fue la de guardar todo aquello que creo importante o que voy a utilizar en un  futuro próximo. Esta función la encontré buscando como <em>ordenar un array multidimensional por un campo</em> y me sirvió bastante, así que hoy se las dejo para que la usen. Saludos y perdón por la poca frecuencia de entradas, prometo en enero aumentar las mismas&#8230;</p>
<p>Con esta sencilla función conseguiremos ordenar cualquier array multidimensional por el campo del array que queramos. Podremos indicarle si queremos que nos lo ordene de manera ascendente o descendente.</p>
<p><strong>$toOrderArray -&gt;</strong> Array a ordenar<br />
<strong>$field -&gt;</strong> Campo del array por el que queremos ordenarlo (entre comillas).<br />
<strong>$inverse -&gt;</strong> Su valor será true o false. El valor true lo ordenará de manera descendente y el false (valor por defecto) lo ordenará de manera ascendente.</p>
<pre class="brush: php;">function orderMultiDimensionalArray ($toOrderArray, $field, $inverse = false) {
    $position = array();
    $newRow = array();
    foreach ($toOrderArray as $key =&gt; $row) {
            $position[$key]  = $row[$field];
            $newRow[$key] = $row;
    }
    if ($inverse) {
        arsort($position);
    }
    else {
        asort($position);
    }
    $returnArray = array();
    foreach ($position as $key =&gt; $pos) {
        $returnArray[] = $newRow[$key];
    }
    return $returnArray;
}</pre>
<p>Fuente | <a href="http://notasweb.com/articulo/php/ordenar-array-multidimensional-por-un-campo-con-php.html" target="_blank">NotasWeb</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2433" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;submitHeadline=Ordenar+array+multidimensional+por+un+campo+con+PHP&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;title=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;title=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;title=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;bm_description=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;T=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;title=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;title=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Ordenar+array+multidimensional+por+un+campo+con+PHP+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2011%2F01%2Fordenar-array-multidimensional-por-un-campo-con-php%2F&amp;t=Ordenar+array+multidimensional+por+un+campo+con+PHP" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2433').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2011/01/ordenar-array-multidimensional-por-un-campo-con-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[PHP] Asignación por referencia.</title>
		<link>http://www.zarpele.com.ar/2010/12/php-asignacion-por-referencia/</link>
		<comments>http://www.zarpele.com.ar/2010/12/php-asignacion-por-referencia/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 06:52:36 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2383</guid>
		<description><![CDATA[<p><a href="http://www.zarpele.com.ar/wp-content/uploads/2010/12/php_code.jpg" rel="shadowbox"><img src="http://www.zarpele.com.ar/wp-content/uploads/2010/12/php_code-300x193.jpg" alt="" title="php_code" width="300" height="193" class="aligncenter size-medium wp-image-2384" /></a></p>
<p style="padding-left: 30px;"><a href="http://php.net/" target="_blank">PHP</a> ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, &#8220;se convierte en un alias de&#8221; o &#8220;apunta a&#8221;) la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes array&#8217;s u objetos.</p>
<pre class="brush: php;">&lt;?php
$nombre = 'Zarpele';              // Asigna el valor 'Zarpele' a $nombre
$referencia = &amp;$nombre;              // Referencia $nombre vía $referencia.
$referencia = &quot;Linux y software libre $referencia&quot;; // Modifica $referencia
var_dump($nombre);                 // $nombre también se modifica.
var_dump($referencia);
?&gt;</pre>
<p><strong>Saludos&#8230;</strong></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2383" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;submitHeadline=%5BPHP%5D+Asignaci%C3%B3n+por+referencia.&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;title=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;title=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;title=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;bm_description=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;T=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;title=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;title=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+%5BPHP%5D+Asignaci%C3%B3n+por+referencia.+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F12%2Fphp-asignacion-por-referencia%2F&amp;t=%5BPHP%5D+Asignaci%C3%B3n+por+referencia." rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2383').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2010/12/php-asignacion-por-referencia/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Errores clásicos desarrollando con PHP… [Parte2]</title>
		<link>http://www.zarpele.com.ar/2010/11/errores-clasicos-desarrollando-con-php%e2%80%a6-parte2/</link>
		<comments>http://www.zarpele.com.ar/2010/11/errores-clasicos-desarrollando-con-php%e2%80%a6-parte2/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 12:13:41 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Clasicos]]></category>
		<category><![CDATA[Classic]]></category>
		<category><![CDATA[Errores]]></category>
		<category><![CDATA[Mistakes]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2272</guid>
		<description><![CDATA[<p><span style="margin-left: 30px;"></span>Esta es la segunda entrega de estos <em>Errores clásicos desarrollando con PHP</em> que voy sacando. Si no vieron la <a href="http://www.zarpele.com.ar/2010/10/errores-clasicos-desarrollando-con-php/" target="_blank" title="Ver primera parte...">primera parte</a>, los invito a que se den una vuelta por este.</p>
<p><span style="margin-left: 30px;"></span>En esta ocasión, no me voy a enfocar en los errores de código o de programación, sino que le voy a dar un enfoque mas general y hasta podría usarse esta entrada para cualquier lenguaje de programación haciendo una pequeña analogía. </p>
<p><span style="margin-left: 30px;"></span>Como les comente en la primera parte, estos son errores que me pasaron a mi y vamos a tratar de que otro yo, no cometa los mismos errores.</p>
<h3>No utilices Gedit, utiliza un IDE!!!.</h3>
<p><span style="margin-left: 30px;"></span><img src="http://www.zarpele.com.ar/wp-content/uploads/2010/11/netbeans.jpg" alt="" title="netbeans" width="50" class="alignright size-full wp-image-2273" />Lease también Kate, vim, vi, etc. En mis comienzo desarrollando con este lenguaje, utilizaba el viejo y conocido <a href="http://es.wikipedia.org/wiki/Gedit" target="_blank" title="Que es Gedit?">Gedit</a>, si bien me sirvió en un principio ya que cuenta con un resaltador de sintaxis, me di cuenta a medida que fui conociendo de este lenguaje perdí mucho tiempo en este aspecto.</p>
<p><span style="margin-left: 30px;"></span>Recomendación: Antes de empezar con algún lenguaje de programación, instala algún <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado" target="_blank">IDE</a>, a mi en particular me gusta <a href="www.netbeans.org/" target="_blank">Netbeans</a>. <strong>Entre las ventajas que proporciona un IDE están: auto-completado de código, manejo de clases, sugerencias de código, etc, etc.</strong></p>
<h3>Documentar es fundamental.</h3>
<p><span style="margin-left: 30px;"></span>Tenia un viejo juicio acerca de la Documentación, que es al pedo (esta de mas), perdemos mucho tiempo, se vuelve tediosa, etc. ya sea hablando de documentación de código y/o utilización de<a href="http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado" target="_blank"> UML </a>en nuestros diagramas.</p>
<p><span style="margin-left: 30px;"></span>Hoy en día es indispensable documentar, no una documentación excesiva, sino una documentación que te sirva para retomar un viejo proyecto y engranar rápidamente. En mi laburo usamos diagramas de clases, actividad y casos de usos para diseñar nuestros proyectos ya que trabajamos en equipo (a veces a kilómetros de distancia) y no siempre desarrolla el mismo, esto es difícil de lograr pero no imposible.</p>
<p><span style="margin-left: 30px;"></span>Supongamos que recibimos una oferta laboral de <strong>IBM</strong> (seamos optimistas) y debemos abandonar el proyecto, hay un viejo mito que dice, <em>&#8220;se va el chico que programa, se acaba el proyecto&#8221;</em>, esto ocurre por que no se documenta lo necesario y todo esto <strong>se traduce en tiempo y en dinero</strong>.</p>
<p><span style="margin-left: 30px;"></span>Con respecto a la documentación de código, no solo es ponerle <em>&#8220;Esta función hace tal tal cosa&#8221;</em>, sino mantener ordenado el código para que cualquier programador que se sume al proyecto, entienda el código como si lo hubiese desarrollado el. <strong>No nos olvidemos que un buen desarrollador no es aquel que genere código de manera rápida y eficiente, sino aquel que genere código fácil de &#8220;leer&#8221; por los demás. </strong></p>
<h3>Participa en foros/comunidades</h3>
<p><span style="margin-left: 30px;"></span>Es interesante para interactuar con otras personas que estén en nuestra misma sintonía, muchas veces ayudaremos nosotros y otra vez nos podrán ayudar. En línea general estas comunidades tienen muy buena onda, y la ayuda mutua es lo que abunda, unas líneas de código pueden ser útiles para muchas personas, de ahí que entre todos se puede perfeccionar. </p>
<p><span style="margin-left: 30px;"></span>También al interactuar con otras personas estaremos atenti a lo nuevo, nuevas actualizaciones de Framework, Mejoras a un IDE, nuevas librerias, etc. Yo por ejemplo sigo a <a href="http://www.facebook.com/home.php#!/ZendTechnologies" target="_blank">Zend Technologies</a> y a <a href="http://www.facebook.com/home.php#!/pages/The-Linux-Foundation/41911143546" target="_blank">The Linux Foundation</a> y me entero rapidamente de las nuevas noticias, otra forma obviamente es <strong>Twitter</strong>.</p>
<h3>Utiliza un Framework</h3>
<p><span style="margin-left: 30px;"></span><img src="http://www.zarpele.com.ar/wp-content/uploads/2010/11/ZendFramework-logo5-64x64.gif" alt="" title="ZendFramework-logo5-64x64" width="50"class="alignright size-full wp-image-2279" />Es imposible en cada proyecto reinventar la rueda, para esto tenemos muchos <a href="http://es.wikipedia.org/wiki/Framework">Frameworks</a> que nos permiten avanzar rápidamente sin la necesidad de hacer todo desde cero.</p>
<p><span style="margin-left: 30px;"></span>Últimamente utilizo <a href="http://framework.zend.com/" target="_blank">Zend Framework</a> pero también les puedo recomendar <a href="http://www.symfony-project.org/" target="_blank">Symfony</a> o <a href="http://cakephp.org/" target="_blank">CakePHP</a>.</p>
<p><span style="margin-left: 30px;"></span>Si piensas que por tiempo no es necesario aprender un Framework, puedes buscar clases especificas que realizan cierto tipo de tareas en <a href="http://www.phpclasses.org/">www.phpclasses.org</a> o directamente desde <a href="http://www.zarpele.com.ar/tag/google/">Google</a>.</p>
<h3>Entiende el código, no copy/pastees</h3>
<p><span style="margin-left: 30px;"></span><img src="http://www.zarpele.com.ar/wp-content/uploads/2010/11/copy-paste.jpg" alt="" title="copy-paste" width="150" height="200" class="alignright size-full wp-image-2283" />Si te tomas la costumbre de tomar código que terceros y hacerlos andar como sea, sin entender (debug humano <img src='http://www.zarpele.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) el código, es muy seguro que aprendas lento. Claro es mas rápido, pero hay una gran posibilidad de que te encuentres con el mismo problema en el futuro y que no tengamos ni idea por donde empezar. Asi, que aunque el script que bajaste de internet sea corto, tomate un tiempito en entenderlo.</p>
<p><strong>Saludos&#8230;</strong></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2272" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;submitHeadline=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;bm_description=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;T=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F11%2Ferrores-clasicos-desarrollando-con-php%25e2%2580%25a6-parte2%2F&amp;t=Errores+cl%C3%A1sicos+desarrollando+con+PHP%E2%80%A6+%5BParte2%5D" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2272').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2010/11/errores-clasicos-desarrollando-con-php%e2%80%a6-parte2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Errores clásicos desarrollando con PHP&#8230;</title>
		<link>http://www.zarpele.com.ar/2010/10/errores-clasicos-desarrollando-con-php/</link>
		<comments>http://www.zarpele.com.ar/2010/10/errores-clasicos-desarrollando-con-php/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 03:25:03 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Clasicos]]></category>
		<category><![CDATA[Classic]]></category>
		<category><![CDATA[Errores]]></category>
		<category><![CDATA[Mistakes]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2218</guid>
		<description><![CDATA[<p>En mis comienzos, cometí muchos errores (algunos graves) a la hora de codear con PHP, en esta entrada voy a poner los que para <em><strong>mi</strong></em> son importantes saber.</p>
<p>A medida que me vaya acordando de los errores (o cometiendolos <img src='http://www.zarpele.com.ar/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) iré actualizando esta entrada&#8230;</p>
<p>En esta oportunidad, me enfocare en los errores de código.</p>
<h3>Etiquetas Php</h3>
<p>Si bien Php permite varias formas de indicar que a continuación viene código que debe interpretar, las siguientes formas son incorrectas&#8230;</p>
<p><span style="color: #990000;">Incorrecto</span>
<pre class="brush: php;">&lt;?
    echo &quot;Hola Mundo&quot;;
?&gt;</pre>
<p><span style="color: #990000;">Incorrecto, mal</span>
<pre class="brush: php;">&lt;? = &quot;Hola mundo&quot;;?&gt;</pre>
<p><span style="color: #990000;">Incorrecto, mal muy mal</span>
<pre class="brush: php;">&lt;% Echo &quot;Hola mundo&quot;;%&gt;</pre>
<p><span style="color: #33cc00;">Correcto</span>
<pre class="brush: php;">&lt;?php
echo &quot;Hola mundo&quot;;
?&gt;</pre>
<h3>Php con Html</h3>
<p>No mezcles código Php con Html, no hagas que la lectura de tu código sea mas difícil aun mezclando este lenguaje de marcado.</p>
<p><span style="color: #990000;">Incorrecto</span></p>
<pre class="brush: php;">&lt;?php
    echo &quot;&lt;div style=&quot;text-align:center&quot;&gt;;
    echo &quot;&lt;em&gt;Nombre: &lt;/em&gt;&lt;strong&gt;&quot;.$datos['nombre'].&quot;&lt;/strong&gt;&quot;;
    echo &quot;&lt;em&gt;Apellido: &lt;/em&gt;&lt;strong&gt;&quot;.$datos['apellido'].&quot;&lt;/strong&gt;&quot;;
    echo &quot;&lt;em&gt;Domicilio: &lt;/em&gt;&lt;strong&gt;&quot;.$datos['domicilio'].&quot;&lt;/strong&gt;&quot;;
    echo &quot;&lt;/div&gt;&quot;;
?&gt;</pre>
<p><span style="color: #33cc00;">Correcto</span></p>
<pre class="brush: php;">
    &lt;div style=&quot;text-align:center&quot;&gt;
         &lt;em&gt;Nombre: &lt;/em&gt;&lt;strong&gt;&lt;?php echo $datos['nombre'];?&gt;&lt;/strong&gt;
         &lt;em&gt;Apellido: &lt;/em&gt;&lt;strong&gt;&lt;?php echo $datos['apellido'];?&gt;&lt;/strong&gt;
         &lt;em&gt;Domicilio: &lt;/em&gt;&lt;strong&gt;&lt;?php echo $datos['domicilio'];?&gt;&lt;/strong&gt;
    &lt;/div&gt;
</pre>
<h3>Comillas Simples y Comillas Dobles</h3>
<p>Es fácil de usar sólo comillas al concatenar cadenas, ya que analiza todo perfectamente sin tener que hacer frente a escapar de los caracteres. Sin embargo, con base en cotizaciones individuales tiene un considerable aumento de rendimiento, ya que requiere menos procesamiento.</p>
<p>Si vas a imprimir solo cadenas, utiliza comillas simples&#8230;</p>
<pre class="brush: php;">&lt;?php
echo 'Esto es una cadena de texto';
?&gt;</pre>
<p>Si utilizas comillas dobles, obtendrás el mismo resultado pero este requiere mucho mas procesamiento, ya que Php inspecciona las comillas dobles en busca de variables.</p>
<pre class="brush: php;">&lt;?php
echo &quot;Esto es una cadena de texto: $cadena&quot;;
?&gt;</pre>
<p>Otra alternativa, concatenando cadenas&#8230;</p>
<pre class="brush: php;">&lt;?php
echo 'Esto es una cadena de texto: '.$cadena.' Fin';
?&gt;</pre>
<h3>Encriptar contraseñas</h3>
<p>No guardes en la db datos importantes como la contraseña en texto plano, encriptalas antes de guardarla en la base de datos, utilizando por ejemplo <a href="http://php.net/manual/en/function.md5.php">md5()</a>.</p>
<p>También es recomendable usar <a href="http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure">HTTPS</a> (<a href="http://es.wikipedia.org/wiki/Transport_Layer_Security">SSL</a>) en el login de tu pagina, para evitar de que alguien sniffee en la red los datos de acceso (de los usuarios) y nos tome por sorpresa.</p>
<pre class="brush: php;">&lt;?php
    $str = 'mi pass';
    echo md5($str);
?&gt;</pre>
<h3>Escapa el código HTML</h3>
<p>Si el usuario de alguna manera introdujo código Html en tu Base de Datos, al levantar ese dato si no lo escapamos nuestro servidor lo interpretara como código Html, no dejaremos al usuario introducir Html usando <a href="http://php.net/manual/en/function.htmlspecialchars.php">htmlentities()</a>.</p>
<p><span style="color: #990000;">Mal</span></p>
<pre class="brush: php;">&lt;?php
  echo $_GET['username'];
?&gt;</pre>
<p><span style="color: #33cc00;">Bien</span></p>
<pre class="brush: php;">&lt;?php
  echo htmlspecialchars($_GET['username'], ENT_QUOTES);
?&gt;</pre>
<p>Bueno, hasta aquí la primera parte, escucho comentarios y criticas&#8230;<br />
Saludos&#8230;</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2218" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;submitHeadline=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;bm_description=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;T=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;title=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Ferrores-clasicos-desarrollando-con-php%2F&amp;t=Errores+cl%C3%A1sicos+desarrollando+con+PHP%26%238230%3B" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2218').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2010/10/errores-clasicos-desarrollando-con-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Magento: Obtener todos los productos de un Store</title>
		<link>http://www.zarpele.com.ar/2010/10/magento-obtener-todos-los-productos-de-un-store/</link>
		<comments>http://www.zarpele.com.ar/2010/10/magento-obtener-todos-los-productos-de-un-store/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 12:24:14 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=2149</guid>
		<description><![CDATA[<p>Con el siguiente fragmento de codigo, obtendremos todos los productos que se encuentran bajo un Store. </p>
<p>En el ejemplo toma el Store por defecto, si quieren uno en particular debe pasárselo como parametro a <em>setCurrentStore</em>, luego de obtener todos los ids y guardarlo en un arreglo, levanta producto por producto y nos muestra su correspondiente SKU.</p>
<pre class="brush: php;">
&lt;?php
require_once '../app/Mage.php';
umask(0);
Mage::app()-&gt;setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$product_ids = Mage::getModel('catalog/product')-&gt;getCollection()-&gt;getAllIds();

foreach ($product_ids as $id)
{
    $product = Mage::getModel('catalog/product')-&gt;load($id);

    echo 'SKU: '.$product-&gt;getSku();
}
?&gt;
</pre>
<p>Salut!</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d2149" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;submitHeadline=Magento%3A+Obtener+todos+los+productos+de+un+Store&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;title=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;title=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;title=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;bm_description=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;T=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;title=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;title=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Magento%3A+Obtener+todos+los+productos+de+un+Store+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F10%2Fmagento-obtener-todos-los-productos-de-un-store%2F&amp;t=Magento%3A+Obtener+todos+los+productos+de+un+Store" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d2149').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2010/10/magento-obtener-todos-los-productos-de-un-store/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP: Clase simple para obtener información de videos de YouTube</title>
		<link>http://www.zarpele.com.ar/2010/09/php-clase-simple-para-obtener-informacion-de-videos-de-youtube/</link>
		<comments>http://www.zarpele.com.ar/2010/09/php-clase-simple-para-obtener-informacion-de-videos-de-youtube/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 23:28:25 +0000</pubDate>
		<dc:creator>Zarpele</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programacion Web]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://www.zarpele.com.ar/?p=1868</guid>
		<description><![CDATA[<p>Hace poco, me puse a hacer la sección de Videos de <a href="http://www.futbol-rustico.com.ar/videosnuevos" target="_blank">esta pagina</a> y por supuesto la quise integrar con el gigante de los videos <a href="http://www.youtube.com/">YouTube</a>.</p>
<p>Me dirijo a la <a href="http://code.google.com/intl/es-ES/apis/youtube/developers_guide_php.html" target="_blank">API de Datos</a> de Youtube y me encuentro con muuuuuuuucho para leer y nada rápido para probar. </p>
<p>Para utilizar la API con PHP se necesita <a href="http://framework.zend.com/download/gdata/">Zend Framework</a> un framework demasiado pesadito para mi gusto (por lo poco que necesitaba), por lo que me puse a investigar y desarrolle una pequeña clase para obtener la información de los videos utilizando <a href="http://php.net/manual/es/book.curl.php">CURL</a> con <a href="http://php.net/index.php" target="_blank">PHP</a>. </p>
<p>En esta primera versión, podemos obtener los siguientes datos de un video:</p>
<ul>
<li>Titulo</li>
<li>Fecha de Publicación</li>
<li>Descripción</li>
<li>Meta Tags</li>
<li>URL en Youtube</li>
<li>Imágenes </li>
<li>Código del Reproductor</li>
</ul>
<p><span style="color:#009900"><em>youtube.class.php</em></span></p>
<pre class="brush: php;">&lt;?php
/*
 * Name: Simple Class Info YouTube
 * Description: Get Information of video YouTube
 * Development: Chuecko
 * Site: http://www.zarpele.com.ar
 * License: GNU GENERAL PUBLIC LICENSE (http://www.gnu.org/licenses/gpl.html)
 * Version: 1.0
 */

class youtube
{
    var $data = '';
    var $id = '';

    public function youtube($id)
    {
        if (strlen($id) &gt;=22)
        {
            parse_str( parse_url( $id, PHP_URL_QUERY ) );
            $this-&gt;id = $v;
        }
        else
        {
            $this-&gt;id=$id;
        }

        $url = &quot;http://gdata.youtube.com/feeds/videos/&quot;.$this-&gt;id;
        $browser_id = &quot;none&quot;;
        $curl_handle = curl_init();
        $options = array
        (
            CURLOPT_URL=&gt;$url,
            CURLOPT_HEADER=&gt;false,
            CURLOPT_RETURNTRANSFER=&gt;true,
            CURLOPT_USERAGENT=&gt;$browser_id
        );
        curl_setopt_array($curl_handle,$options);
        $server_output = curl_exec($curl_handle);
        curl_close($curl_handle);

        $this-&gt;data=$server_output;
    }

    public function getTitle()
    {
        $startString = &quot;&lt;media:title type='plain'&gt;&quot;;
        $endString = &quot;&lt;/media:title&gt;&quot;;

        $tempString = strstr($this-&gt;data, $startString);

        $endLocation = strpos($tempString, $endString);
        $title = substr($tempString, 0, $endLocation);

        if (empty($title))
        {
            $title=false;
        }
        else
        {
            $title=substr($title,strlen($startString));
        }

        return $title;
    }

    public function getPublished()
    {
        $startString = &quot;&lt;published&gt;&quot;;
        $endString = &quot;&lt;/published&gt;&quot;;

        $starLocation = strpos($this-&gt;data, $startString);
        $tempString = substr($this-&gt;data, $starLocation);

        $endLocation = strpos($tempString, $endString);
        $published = substr($tempString, 0, $endLocation);

        if (empty($published))
        {
            $published=false;
        }
        else
        {
            $published=substr($published,strlen($startString));
            $published=substr($published,0,10);
        }

        return $published;
    }

    public function getDescription()
    {
        $startString = &quot;&lt;media:description type='plain'&gt;&quot;;
        $endString = &quot;&lt;/media:description&gt;&quot;;

        $starLocation = strpos($this-&gt;data, $startString);
        $tempString = substr($this-&gt;data, $starLocation);

        $endLocation = strpos($tempString, $endString);
        $description = substr($tempString, 0, $endLocation);

        if (empty($description))
        {
            $description=false;
        }
        else
        {
            $description=substr($description,strlen($startString));
        }

        return $description;
    }

    public function getMetaTags()
    {
        $startString = &quot;&lt;media:keywords&gt;&quot;;
        $endString = &quot;&lt;/media:keywords&gt;&quot;;

        $starLocation = strpos($this-&gt;data, $startString);
        $tempString = substr($this-&gt;data, $starLocation);

        $endLocation = strpos($tempString, $endString);
        $metaTags = substr($tempString, 0, $endLocation);

        if (empty($metaTags))
        {
            $metaTags=false;
        }
        else
        {
            $metaTags=substr($metaTags,strlen($startString));
        }

        return $metaTags;
    }

    public function getUrl()
    {
        return &quot;http://www.youtube.com/watch?v=&quot;.$this-&gt;id;
    }

    public function getUrlImage($option)
    {
        if($option=='default')
        {
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/default.jpg';
        }
        if($option=='grande')
        {
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/0.jpg';
        }
        if($option==1)
        {
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/1.jpg';
        }
        if($option==2)
        {
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/2.jpg';
        }
        if($option==3)
        {
            return 'http://i.ytimg.com/vi/'.$this-&gt;id.'/3.jpg';
        }
    }

    public function getEmbeb($width, $height)
    {
        $autoplay = 1;
        return '&lt;iframe class=&quot;youtube-player&quot; type=&quot;text/html&quot; width=&quot;'.$width.'&quot; height=&quot;'.$height.'&quot; src=&quot;http://www.youtube.com/embed/'.$this-&gt;id.'?autoplay='.$autoplay.'&quot; frameborder=&quot;0&quot;&gt;
        &lt;/iframe&gt;';
    }

}

?&gt;
</pre>
<p><a href="http://www.zarpele.com.ar/descargas/2010/06/youtube.class.txt" target="_blank">Descargar Fichero PHP</a></p>
<p>Obviamente, hay muchas cosas que mejorar, pero lo hice en pocas horas y me sirvió para lo que yo necesitaba.</p>
<p>Como lo utilizo?, bueno es una clase no hay nada extraño, pero les dejo un ejemplito&#8230;</p>
<p><span style="color:#009900"><em>ejemplo.php</em></span></p>
<pre class="brush: php;">&lt;?php
require_once 'youtube.class.php';
/*
 * Name: Simple Class Info YouTube
 * Description: Get Information of video YouTube
 * Development: Chuecko
 * Site: http://www.zarpele.com.ar
 * License: GNU GENERAL PUBLIC LICENSE (http://www.gnu.org/licenses/gpl.html)
 * Version: 1.0
 */
/*
 * Tambien le pueden pasar como parametro solo el ID de youtube
 * $youtube = new youtube('59PyU_7iqaU');
 */
$youtube = new youtube('http://www.youtube.com/watch?v=59PyU_7iqaU');

echo 'Titulo: '.$youtube-&gt;getTitle().'&lt;br/&gt;';
echo 'Publicado: '.$youtube-&gt;getPublished().'&lt;br/&gt;';
echo 'Descripcion: '.$youtube-&gt;getDescription().'&lt;br/&gt;';
echo 'Meta Tags: '.$youtube-&gt;getMetaTags().'&lt;br/&gt;';
echo 'Link: '.$youtube-&gt;getUrl().'&lt;br/&gt;';
echo 'Imagen: '.$youtube-&gt;getUrlImage('default').'&lt;br/&gt;';

echo $youtube-&gt;getEmbeb(640, 390);

?&gt;</pre>
<p><a href="http://www.zarpele.com.ar/descargas/2010/06/ejemplo.txt" target="_blank">Descargar Fichero PHP</a><br />
Ya que están de paso, se miran el video del ejemplo <img src='http://www.zarpele.com.ar/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<strong><br />
Salut&#8230;</strong></p>
<hr/>
<span style="color:#CC0000; font-size:20px; font-weight:bold;">ACTUALIZACION 27-02-2011</span><br />
Ya que esta clase tuvo mucho éxito, he creado un proyecto en Google Code <a href="http://code.google.com/p/simple-class-youtube/">http://code.google.com/p/simple-class-youtube/</a>, con el objetivo de ir mejorando el codigo, esta liberado bajo licencia GPL/v2.</p>
<hr/>
<span style="color:#CC0000; font-size:20px; font-weight:bold;">ACTUALIZACION 02-07-2011</span><br />
Lanzada la <a target="_blank" href="http://www.zarpele.com.ar/2011/08/php-clase-simple-para-obtener-informacion-de-videos-de-youtube-v1-1/">versión 1.1</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<div class="d1868" style="overflow:hidden; text-align:center;" >
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;submitHeadline=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;bm_description=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Mister Wong"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Add to&nbsp;Mister Wong" alt="Add to&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;T=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;title=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F" rel="nofollow" title="Add to&nbsp;Tip'd"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/tipd.png" title="Add to&nbsp;Tip'd" alt="Add to&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube+@+http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.zarpele.com.ar%2F2010%2F09%2Fphp-clase-simple-para-obtener-informacion-de-videos-de-youtube%2F&amp;t=PHP%3A+Clase+simple+para+obtener+informaci%C3%B3n+de+videos+de+YouTube" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.zarpele.com.ar/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
<script type="text/javascript">$$('div.d1868').each( function(e) { e.visualEffect('slide_up',{duration:0.5}) }); </script>]]></description>
		<wfw:commentRss>http://www.zarpele.com.ar/2010/09/php-clase-simple-para-obtener-informacion-de-videos-de-youtube/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
	</channel>
</rss>

