<?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>Blog Desarrollo - Información para desarrolladores &#187; PHP</title>
	<atom:link href="http://blogdesarrollo.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogdesarrollo.com</link>
	<description>Noticias, manuales, recursos, eventos para el desarrollo web.</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:19:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Clase para el manejo de usuarios en php</title>
		<link>http://blogdesarrollo.com/php/2010/07/16/clase-para-el-manejo-de-usuarios-en-php/</link>
		<comments>http://blogdesarrollo.com/php/2010/07/16/clase-para-el-manejo-de-usuarios-en-php/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 12:22:30 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[clase php]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=758</guid>
		<description><![CDATA[Aunque estemos cómodos con nuestro código, que seguramente hemos utilizado en numerosos proyectos, nunca esta de mas ver &#8220;código ajeno&#8221;. A mi por lo menos me sirve de mucho y realmente se aprende al ver como otros han resuelto alguna funcionalidad de distinta forma que nosotros  (generalmente mejor, en mi caso). En este caso,  se [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque estemos cómodos con nuestro código, que seguramente hemos utilizado en numerosos proyectos, nunca esta de mas ver &#8220;código ajeno&#8221;. A mi por lo menos me sirve de mucho y realmente se aprende al ver como otros han resuelto alguna funcionalidad de distinta forma que nosotros  (generalmente mejor, en mi caso).</p>
<p>En este caso,  se trata de  phpuserclass, que es simplemente eso, una clase para manejo de usuarios/login en php y con un extra de un login en jquery un poco mas vistoso.</p>
<p>Url: <a href="http://phpuserclass.com/" target="_blank">http://phpuserclass.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2010/07/16/clase-para-el-manejo-de-usuarios-en-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Clase para mostrar videos desde multiples fuentes</title>
		<link>http://blogdesarrollo.com/php/2010/07/06/clase-para-mostrar-videos-desde-multiples-fuentes/</link>
		<comments>http://blogdesarrollo.com/php/2010/07/06/clase-para-mostrar-videos-desde-multiples-fuentes/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 02:02:57 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=738</guid>
		<description><![CDATA[Por suerte siempre hay algun programador talentoso y trabajador que no da una gran mano a lo que no somos ninguna de las dos cosas. El tema es que para un proyecto que estoy realizando, necesitaba mostrar videos de varias fuentes (más de 30).  Empece por youtube, sin problemas y despues con un par mas, [...]]]></description>
			<content:encoded><![CDATA[<p>Por suerte siempre hay algun programador talentoso y trabajador que no da una gran mano a lo que no somos ninguna de las dos cosas.</p>
<p>El tema es que para un proyecto que estoy realizando, necesitaba mostrar videos de varias fuentes (más de 30).  Empece por youtube, sin problemas y despues con un par mas, hasta que algo aburrido de buscar en cada uno de los sitios,  recurri a al viejo phpclasses.org y encontre EmbeVi y ahora son casi feliz.</p>
<p>Bajar <a href="http://www.blogdesarrollo.com/wp-content/uploads/codigo/embevi.rar" target="_blank">EmbeVi</a></p>
<p style="text-align: center;"><a href="http://blogdesarrollo.com/wp-content/uploads/2010/07/embevi.jpg"><img class="size-full wp-image-739 aligncenter" title="embevi" src="http://blogdesarrollo.com/wp-content/uploads/2010/07/embevi.jpg" alt="" width="422" height="344" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2010/07/06/clase-para-mostrar-videos-desde-multiples-fuentes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Administrar MySql con Adminer</title>
		<link>http://blogdesarrollo.com/php/2010/06/14/administrar-mysql-con-adminer/</link>
		<comments>http://blogdesarrollo.com/php/2010/06/14/administrar-mysql-con-adminer/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 02:42:18 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=729</guid>
		<description><![CDATA[No se si es algo muy novedoso, pero yo lo he conocido hoy leyendo  Administra tu MySQL con Adminer. En un archivo php tenemos un administrador de base de datos bastante decente. Muy útil para cuando no tenemos acceso a algun panel a la  base directamente, subimos el archivo y ya podemos acceder sin necesidad [...]]]></description>
			<content:encoded><![CDATA[<p>No se si es algo muy novedoso, pero yo lo he conocido hoy leyendo <a href="http://www.utilidadweb.com/14/06/2010/administra-tu-mysql-con-adminer/" target="_blank"> Administra tu MySQL con Adminer</a>. En un archivo <a href="http://blogdesarrollo.com/wp-content/uploads/2010/06/adminer.png"><img class="alignright size-full wp-image-730" title="adminer" src="http://blogdesarrollo.com/wp-content/uploads/2010/06/adminer.png" alt="" width="189" height="111" /></a>php tenemos un administrador de base de datos bastante decente. Muy útil para cuando no tenemos acceso a algun panel a la  base directamente, subimos el archivo y ya podemos acceder sin necesidad de subir todo un admin, como el phpmyadmin.</p>
<p>Url:  <a href="http://www.adminer.org/en/" target="_blank">http://www.adminer.org</a></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2010/06/14/administrar-mysql-con-adminer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clase PHP para analizar pedidos POST/GET en nuestra web</title>
		<link>http://blogdesarrollo.com/php/2010/04/05/clase-php-para-analizar-pedidos-postget-en-nuestra-web/</link>
		<comments>http://blogdesarrollo.com/php/2010/04/05/clase-php-para-analizar-pedidos-postget-en-nuestra-web/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 12:45:00 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=656</guid>
		<description><![CDATA[Siguiendo con estos posteos en la categoria &#8220;paranoia&#8221;, encontre esta clase PHP, que nos permite analizar y detectar posible ataques HTTP a nuestras páginas. Para bajar la clase,  en este link.]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con estos posteos en la categoria &#8220;paranoia&#8221;, encontre esta clase PHP, que nos permite analizar y detectar posible ataques HTTP a nuestras páginas. Para bajar la clase,  <a href="http://www.blogdesarrollo.com/wp-content/uploads/codigo/phprotector-2010-03-25.zip" target="_blank">en este link</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2010/04/05/clase-php-para-analizar-pedidos-postget-en-nuestra-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Seleccionando un Datapicker</title>
		<link>http://blogdesarrollo.com/php/2010/03/11/seleccionando-un-datapicker/</link>
		<comments>http://blogdesarrollo.com/php/2010/03/11/seleccionando-un-datapicker/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 19:54:07 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=619</guid>
		<description><![CDATA[Necesitaba elegir un Datapicker o selector de fecha&#8230;para un proyecto en donde funcionan varios calendarios al mismo tiempo.  Probe bastantes y finalmente me quede con jQuery Datapicker, uno de los mas livianos de la lista. Los mejores 10 datapickers]]></description>
			<content:encoded><![CDATA[<p>Necesitaba elegir un Datapicker o selector de fecha&#8230;para un proyecto en donde funcionan varios calendarios al mismo tiempo.  Probe bastantes y finalmente me quede con <strong><a href="http://jqueryui.com/demos/datepicker/" target="_blank"></a><a href="http://jqueryui.com/demos/datepicker/" target="_blank">jQuery Datapicke</a>r</strong>, uno de los mas livianos de la lista.</p>
<p><strong><a href="http://blogdesarrollo.com/recursos/los-mejores-datapickers/" target="_blank">Los mejores 10 datapickers</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2010/03/11/seleccionando-un-datapicker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RavenNuke CMS 2.40.00</title>
		<link>http://blogdesarrollo.com/php/2009/10/14/ravennuke-cms-2-40-00/</link>
		<comments>http://blogdesarrollo.com/php/2009/10/14/ravennuke-cms-2-40-00/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:40:25 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CMS]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=545</guid>
		<description><![CDATA[RavenNuke,  como su nombre hace sospechar, es un CMS desarrollado en base al muy popular PHP Nuke. La idea de los creadores fue hacer una version mas segura, estable y con nuevas especificaciones. Habra que probarlo. Url:  http://www.ravenphpscripts.com/]]></description>
			<content:encoded><![CDATA[<p>RavenNuke,  como su nombre hace sospechar, es un CMS desarrollado en base al muy popular PHP Nuke. La idea de los creadores fue hacer una version mas segura, estable y con nuevas especificaciones. Habra que probarlo.</p>
<p>Url:  <a href="http://www.ravenphpscripts.com/" target="_blank">http://www.ravenphpscripts.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2009/10/14/ravennuke-cms-2-40-00/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ya disponible PHP 5.2.11</title>
		<link>http://blogdesarrollo.com/php/2009/10/06/ya-disponible-php-5-2-11/</link>
		<comments>http://blogdesarrollo.com/php/2009/10/06/ya-disponible-php-5-2-11/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 12:28:47 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=538</guid>
		<description><![CDATA[Ya esta disponible una nueva versión de nuestro querido PHP. Al parecer hay muchas mejoran en cuando a seguridad. Detalle de la nueva versión: http://www.php.net/releases/5_2_11.php Detalle los bugs solucionados:  www.php.net.]]></description>
			<content:encoded><![CDATA[<p>Ya esta disponible una nueva versión de nuestro querido PHP. Al parecer hay muchas mejoran en cuando a seguridad.</p>
<p>Detalle de la nueva versión: <a href="http://www.php.net/releases/5_2_11.php" target="_blank">http://www.php.net/releases/5_2_11.php</a></p>
<p>Detalle los bugs solucionados:  <a href="http://www.php.net/ChangeLog-5.php#5.2.11" target="_blank">www.php.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2009/10/06/ya-disponible-php-5-2-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Persistir Objetos en PHP</title>
		<link>http://blogdesarrollo.com/php/2009/09/28/persistir-objetos-en-php/</link>
		<comments>http://blogdesarrollo.com/php/2009/09/28/persistir-objetos-en-php/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 14:23:34 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[objetos]]></category>
		<category><![CDATA[persistencia]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=514</guid>
		<description><![CDATA[Para los programadores Java, la persistencia de objetos es algo bastante más habitual que en el desarrollo PHP.  Estas clases nos pueden ayudar a trabajar con objetos. Url:  http://www.phpclasses.org/browse/package/5686.html]]></description>
			<content:encoded><![CDATA[<p>Para los programadores Java, la persistencia de objetos es algo bastante más habitual que en el desarrollo PHP.  Estas clases nos pueden ayudar a trabajar con objetos.</p>
<p>Url:  <a href="http://www.phpclasses.org/browse/package/5686.html" target="_blank">http://www.phpclasses.org/browse/package/5686.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2009/09/28/persistir-objetos-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accediendo a Google Analytics con Curl</title>
		<link>http://blogdesarrollo.com/php/2009/09/08/accediendo-a-google-analytics-con-curl/</link>
		<comments>http://blogdesarrollo.com/php/2009/09/08/accediendo-a-google-analytics-con-curl/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 12:38:13 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[APIS]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=464</guid>
		<description><![CDATA[Para un proyecto reciente me han pedido mostrar en una pagina algunos datos generados por Google Analytics. Para hacerlo, podemos utilizar la Data Export API. Conectar a nuestra cuenta de Analytics, es muy fácil utilizando la libreria de PHP, curl. header("Content-type: text/plain"); $email = "tumailde@googleanalytics.com"; $password = "xxxxxxx"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin"); curl_setopt($ch, [...]]]></description>
			<content:encoded><![CDATA[<p>Para un proyecto reciente me han pedido mostrar en una pagina algunos datos generados por <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a>. Para hacerlo, podemos utilizar la <a href="http://code.google.com/apis/analytics/docs/gdata/1.0/gdataProtocol.html" target="_blank">Data Export API</a>.</p>
<p>Conectar a nuestra cuenta de Analytics, es muy fácil utilizando la libreria de PHP, <a href="http://www.php.net/curl" target="_self">curl</a>.</p>
<pre name="code" class="PHP">

header("Content-type: text/plain");

$email = "tumailde@googleanalytics.com";
$password = "xxxxxxx";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,"accountType=GOOGLE&amp;Email=$email&amp;Passwd=$password&amp;service=analytics&amp;source=untest");
curl_exec($ch);
curl_close($ch);
</pre>
<p>Aqui les dejo <a href="http://code.google.com/apis/analytics/docs/gdata/gdataGallery.html" target="_blank">muchas aplicaciones</a> que han sido creadas con esta API.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2009/09/08/accediendo-a-google-analytics-con-curl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clase PHP para administrar las bases de datos de un cPanel</title>
		<link>http://blogdesarrollo.com/php/2009/08/26/clase-php-para-administrar-las-bases-de-datos-de-un-cpanel/</link>
		<comments>http://blogdesarrollo.com/php/2009/08/26/clase-php-para-administrar-las-bases-de-datos-de-un-cpanel/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 13:03:05 +0000</pubDate>
		<dc:creator>alegg</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blogdesarrollo.com/?p=442</guid>
		<description><![CDATA[Hace un par de días necesitaba para un proyecto, que determinados clientes puedan acceder a las bases de datos del servidor, desde si mini panel en el sitio web. Encontre esta clase que me ayudo bastante. /** * Name: cPanel Database Class * Version: 1.0 * Author: The HungryCoder * Contact: thehungrycoder@gmail.com * Homepage: www.hungrycoder.xenexbd.com [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un par de días necesitaba para un proyecto, que determinados clientes puedan acceder a las bases de datos del servidor, desde si mini panel en el sitio web. Encontre esta clase que me ayudo bastante.</p>
<pre name="code" class="php">

/**
* Name: cPanel Database Class
* Version: 1.0
* Author:     The HungryCoder
* Contact:    thehungrycoder@gmail.com
* Homepage: www.hungrycoder.xenexbd.com
*/

class cpanel_db {
    protected $cpdomain;
    protected $cpuser;
    protected $cppass;
    protected $cptheme;
    private $error;
    public $callresult;

    function __construct($cpdomain,$cpuser,$cppass,$cptheme='x3'){
        $this->cpdomain = $cpdomain;
        $this->cpuser = $cpuser;
        $this->cppass = $cppass;
        $this->cptheme = $cptheme;

    }

    private function callUrl($urlsuffix){
        if(empty($urlsuffix)) return $this->error('URL is empty');

        $url = "http://".$this->cpdomain.":2082/frontend/".$this->cptheme.$urlsuffix;
        $this->callresult=''; //reset
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_USERPWD, "$this->cpuser:$this->cppass");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //    curl_setopt($ch, CURLOPT_VERBOSE , 1 );
        $this->callresult = curl_exec($ch);
        $info = curl_getinfo($ch);
        curl_close($ch);
        return $info;
    }

    /**
     * Create Database
     *
     * @param string $dbname
     * @return boolean
     */
    public function createDb($dbname){
        $suffix = "/sql/addb.html?db=$dbname";

        //return $this->callresult;
        $this->callUrl($suffix);

        return $this->isSuccess('db');
    }   

    public function createUser($username,$pass){
        $suffix = "/sql/adduser.html?user=$username&#038;pass=$pass&#038;pass2=$pass";

        //return $this->callresult;
        $this->callUrl($suffix);

        return $this->isSuccess('user');
    }

    public function grantPriv($db,$user){
        //prepare the params
        $params = "db=$db&#038;user=$user&#038;update=&#038;ALL=ALL&#038;SELECT=SELECT&#038;CREATE=CREATE&#038;INSERT=INSERT&#038;ALTER=ALTER&#038;UPDATE=UPDATE&#038;DROP=DROP&#038;DELETE=DELETE&#038;LOCKTABLES=LOCK&#038;INDEX=INDEX&#038;REFERENCES=REFERENCES&#038;CREATETEMPORARYTABLES=TEMPORARY&#038;CREATEROUTINE=CREATEROUTINE";
        $callurl = "/sql/addusertodb.html?$params";

        $this->callUrl($callurl);

        return $this->isSuccess('grant');
    }

    private function isSuccess($type='db'){
        switch ($type){
            case 'db':
                if(eregi('Added the database',$this->callresult)){
                    return true;
                } else {
                    return false;
                }
                break;

            case 'user':
                if(eregi('Added user',$this->callresult)){
                    return true;
                } else {
                    return false;
                }
                break;

            case 'grant':
                if(eregi('was added to the database',$this->callresult)){
                    return true;
                } else {
                    return false;
                }
                break;
            case 'deldb':
                if(eregi('deleted the database',$this->callresult)){
                    return true;
                } else {
                    return false;
                }
                break;
            case 'deluser':
                if(eregi('Deleted the user',$this->callresult)){
                    return true;
                } else {
                    return false;
                }
                break;
        }
    }

    public function error($msg){
        $this->error = $msg;
        return false;
    }

    public function runBatch($dbname,$dbuser,$dbpass){
        if(empty($dbname) OR empty($dbuser) OR empty($dbpass)) return false;
        $result = array();
        //create the database
        $result['db'] = $this->createDb($dbname);

        //create the user
        $result['user'] = $this->createUser($dbuser,$dbpass);

        //grant the access with real db name and username
        $result['grant'] = $this->grantPriv($this->cpuser.'_'.$dbname,$this->cpuser.'_'.$dbuser);

        return $result;
    }

    /**
     * This method deletes a number of databases from cpanel.
     *
     * @param array $dbs
     * @return array
     */
    public function delDb($dbs){
        //this method will delete a number of dbs.
        if(is_array($dbs)){
            foreach ($dbs as $db){
                $db_full_name = $this->cpuser .'_'.$db;
                $suffix = "/sql/deldb.html?db=$db_full_name";
                $this->callUrl($suffix);
                $result[$db] = $this->isSuccess('deldb');
            }
            return $result;
        } else {
            $this->error('Not an array');
        }
        return false;
    }
    /**
     * This method deletes a number of users from cpanel.
     *
     * @param array $dbs
     * @return array
     */
    public function delUser($users){
        //this method will delete a number of dbs.
        if(is_array($users)){
            foreach ($users as $user){
                $user_full_name = $this->cpuser .'_'.$user;
                $suffix = "/sql/deluser.html?user=$user_full_name";
                $this->callUrl($suffix);
                $result[$user] = $this->isSuccess('deluser');
            }
            return $result;
        } else {
            $this->error('Not an array');
        }
        return false;
    }

    /**
     * Find whether a database is exists in cPanel or not!
     *
     * @param string $dbname Do not include the database name prefix (anything before _).
     * @return boolean
     */
    public function isDbExists($dbname,$limit=100){
        $suffix = "/sql/index.html?itemsperpage=$limit";
        $this->callUrl($suffix);
        $html = $this->callresult;
        $html = substr($html,stripos($html,'
<select name=db>')-1);
        $html = substr($html,1,stripos($html,'</select>

'));
        $html = str_ireplace('','BR',$html);
        $html = strip_tags($html);
        $all_db = explode('BR',$html); //array of all databases.

        //trim the whitespaces surrounding the dbname
        $all_db = array_map('trim',$all_db);
        //print_r($all_db);

        if(in_array($this->cpuser.'_'.$dbname,$all_db)){
            return true;
        } else {
            return false;
        }
    }   

    public function isUserExists($username,$limit=100){
        $suffix = "/sql/index.html?itemsperpage=$limit";
        $this->callUrl($suffix);
        $html = $this->callresult;

        $html = substr($html,stripos($html,'
<select name=user>')-1);

        $html = substr($html,1,stripos($html,'</select>

'));

        $html = str_ireplace('','BR',$html);
        $html = strip_tags($html);
        $all_user = explode('BR',$html); //array of all databases.

        //trim the whitespaces surrounding the dbname
        $all_user = array_map('trim',$all_user);
        //print_r($all_db);

        if(in_array($this->cpuser.'_'.$username,$all_user)){
            return true;
        } else {
            return false;
        }
    }
}
</pre>
<p>Usando la clase</p>
<pre name="code" class="php">

error_reporting(E_ALL);
include('cpanel_mysql.class.php');

$db = new cpanel_db('domain','user','pass');

//create db
if($db->createDb('cpdb')){
    echo 'Db Created';
} else {
    echo 'Db not created';
}

//create user
if($db->createUser('cpuser','3837djd')){
    echo 'User Created';
} else {
    echo 'User not created';
}

//grant access
if($db->grantPriv('cpdb','cpuser')){
    echo 'Priv granted';
} else {
    echo 'Priv not granted';
}

//we can run the above three by this single line:
//$result = $db->runBatch('batch','batch','elkdrlfd');
    //we can now check the result
    print_r($result);

//del database
$db->delDb(array('db1','db2','db3'));

//del users
$db->delUser(array('user1','user1','user3'));

//we can also check whether a db/user exists
if($db->isUserExists('cpuser')) echo 'User exists';

if($db->isDbExists('cpdb')) echo 'Db exists';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogdesarrollo.com/php/2009/08/26/clase-php-para-administrar-las-bases-de-datos-de-un-cpanel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
