<?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>Sentido Web &#187; facebook</title>
	<atom:link href="http://sentidoweb.com/tag/facebook/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Mon, 16 Jan 2012 10:16:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Crear usuarios de prueba en Facebook con CodeIgniter</title>
		<link>http://sentidoweb.com/2011/03/15/crear-usuarios-de-prueba-en-facebook-con-codeigniter.php</link>
		<comments>http://sentidoweb.com/2011/03/15/crear-usuarios-de-prueba-en-facebook-con-codeigniter.php#comments</comments>
		<pubDate>Tue, 15 Mar 2011 18:37:48 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[aplicacion]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[usuarios]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2694</guid>
		<description><![CDATA[Si el otro día hablaba sobre la posibilidad que ofrece Facebook de crear usuarios de prueba para tus aplicaciones, ahora voy a pasar un pequeño script para CodeIgniter que permite crear esos usuarios. El script necesita de la librería curl para PHP para facilitar la tarea: $app_id = 'xxxxxx'; $canvas_page = 'http://apps.facebook.com/xxxx/'; $client_secret = 'xxx'; [...]]]></description>
			<content:encoded><![CDATA[<p>Si el otro día hablaba sobre la posibilidad que ofrece <a href="http://sentidoweb.com/2011/02/11/usuarios-de-prueba-para-tus-aplicaciones-en-facebook.php">Facebook de crear usuarios de prueba para tus aplicaciones</a>, ahora voy a pasar un pequeño script para CodeIgniter que permite crear esos usuarios.</p>
<p>El script necesita de la <a href="http://codeigniter.com/wiki/Curl_library/">librería curl para PHP</a> para facilitar la tarea:</p>
<pre><code><pre class="php"><span style="color: #3E6D8F;">$app_id</span> = <span style="color: #ff0000;">'xxxxxx'</span>;
<span style="color: #3E6D8F;">$canvas_page</span> = <span style="color: #ff0000;">'http://apps.facebook.com/xxxx/'</span>;
<span style="color: #3E6D8F;">$client_secret</span> = <span style="color: #ff0000;">'xxx'</span>;
<span style="color: #3E6D8F;">$app_token</span> = <span style="color: #ff0000;">'access_token_de_la_aplicacion'</span>;
<span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">load</span>-&gt;<span style="color: #006600;">library</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'curl'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">// Creo 100 usuarios</span>
<span style="color: #723b00;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$i</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #3E6D8F;">$i</span>&lt;<span style="color: #cc66cc;">100</span>; <span style="color: #3E6D8F;">$i</span>++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #3E6D8F;">$usuario</span> = <span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">curl</span>-&gt;<span style="color: #006600;">simple_post</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'https://graph.facebook.com/'</span>.<span style="color: #3E6D8F;">$app_id</span>.<span style="color: #ff0000;">'/accounts/test-users?installed=true&amp;permissions=read_stream'</span>, <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'access_token'</span> =&gt; <span style="color: #3E6D8F;">$app_token</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">// Los recupero</span>
<span style="color: #3E6D8F;">$usuarios</span> = <span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">curl</span>-&gt;<span style="color: #006600;">simple_get</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'https://graph.facebook.com/'</span>.<span style="color: #3E6D8F;">$app_id</span>.<span style="color: #ff0000;">'/accounts/test-users?installed=true&amp;permissions=read_stream&amp;access_token='</span>.<span style="color: #3E6D8F;">$app_token</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$usuarios</span> = json_decode<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$usuarios</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #723b00;">foreach</span><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$usuarios</span>-&gt;<span style="color: #006600;">data</span> <span style="color: #723b00;">as</span> <span style="color: #3E6D8F;">$i</span>=&gt;<span style="color: #3E6D8F;">$u</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #808080; font-style: italic;">// Hago que el primer usuario (que sera el que use) sea amigo de todos</span>
  <span style="color: #723b00;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$i</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #3E6D8F;">$ppal</span> = <span style="color: #3E6D8F;">$u</span>;
  <span style="color: #66cc66;">&#125;</span> <span style="color: #723b00;">else</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #808080; font-style: italic;">// Hago un dump para saber si se ha creado bien la amistad</span>
    <a href="http://www.php.net/var_dump"><span style="color: #000066;">var_dump</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">curl</span>-&gt;<span style="color: #006600;">simple_post</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'https://graph.facebook.com/'</span>.<span style="color: #3E6D8F;">$ppal</span>-&gt;<span style="color: #006600;">id</span>.<span style="color: #ff0000;">'/friends/'</span>.<span style="color: #3E6D8F;">$u</span>-&gt;<span style="color: #006600;">id</span>, <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'access_token'</span> =&gt; <span style="color: #3E6D8F;">$ppal</span>-&gt;<span style="color: #006600;">access_token</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/var_dump"><span style="color: #000066;">var_dump</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$this</span>-&gt;<span style="color: #006600;">curl</span>-&gt;<span style="color: #006600;">simple_post</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'https://graph.facebook.com/'</span>.<span style="color: #3E6D8F;">$u</span>-&gt;<span style="color: #006600;">id</span>.<span style="color: #ff0000;">'/friends/'</span>.<span style="color: #3E6D8F;">$ppal</span>-&gt;<span style="color: #006600;">id</span>, <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'access_token'</span> =&gt; <span style="color: #3E6D8F;">$u</span>-&gt;<span style="color: #006600;">access_token</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
 ]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2011/03/15/crear-usuarios-de-prueba-en-facebook-con-codeigniter.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Usuarios de prueba para tus aplicaciones en Facebook</title>
		<link>http://sentidoweb.com/2011/02/11/usuarios-de-prueba-para-tus-aplicaciones-en-facebook.php</link>
		<comments>http://sentidoweb.com/2011/02/11/usuarios-de-prueba-para-tus-aplicaciones-en-facebook.php#comments</comments>
		<pubDate>Fri, 11 Feb 2011 08:34:28 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2682</guid>
		<description><![CDATA[De lo que se entera uno, Facebook te ofrece la posibilidad de crearte usuarios de prueba para realizar tus aplicaciones en Facebook. Mediante la API de Graph podemos entre otras cosas: Crear usuarios POST /app_id/accounts/test-users?installed=true&#038;permissions=read_stream Añadir usuarios a tu app: POST /app_id/accounts/test-users?installed=true&#038;permissions=read_stream &#038;uid=[test_user_id]&#038;owner_access_token=[app_access_token_of_current_owner_app] Acceder a ellos: GET /app_id/accounts/test-users Eso sí, tiene ciertas limitaciones: Número limitado [...]]]></description>
			<content:encoded><![CDATA[<p>De lo que se entera uno, Facebook te ofrece la posibilidad de crearte <a href="http://developers.facebook.com/docs/test_users">usuarios de prueba</a> para realizar tus aplicaciones en Facebook.</p>
<p>Mediante la API de Graph podemos entre otras cosas:</p>
<p><strong>Crear usuarios</strong></p>
<pre>POST /<em>app_id</em>/accounts/test-users?installed=true&#038;permissions=read_stream</pre>
<p><strong>Añadir usuarios a tu app:</strong></p>
<pre>POST /<em>app_id</em>/accounts/test-users?installed=true&#038;permissions=read_stream
&#038;uid=<em>[test_user_id]</em>&#038;owner_access_token=<em>[app_access_token_of_current_owner_app]</em></pre>
<p><strong>Acceder a ellos:</strong></p>
<pre>GET  /<em>app_id</em>/accounts/test-users</pre>
<p>Eso sí, tiene ciertas limitaciones:</p>
<ul><li>Número limitado de usuarios que puedes crear</li>
<li>Los usuarios de prueba pueden interactuar con otros usuarios de prueba pero no con usuarios reales.</li>
<li>Los usuarios de prueba no pueden hacerse fan de páginas públicas o crear contenido público como escribir en el muro de una página.</li>
<li>Pueden ser usados por los desarrolladores de la aplicación.</li>
<li>Un usuario de prueba jamás se puede convertir en usuario real.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2011/02/11/usuarios-de-prueba-para-tus-aplicaciones-en-facebook.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Create Facebook applications with CodeIgniter</title>
		<link>http://sentidoweb.com/2010/08/25/create-facebook-applications-with-codeigniter.php</link>
		<comments>http://sentidoweb.com/2010/08/25/create-facebook-applications-with-codeigniter.php#comments</comments>
		<pubDate>Wed, 25 Aug 2010 06:56:58 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://www.ibm.com/developerworks/web/library/wa-fbcodeigniter/index.html?ca=drs-</guid>
		<description><![CDATA[Learn how to incorporate the Facebook SDK into the CodeIgniter framework, using the available functions to create applications. &#8230; Post original]]></description>
			<content:encoded><![CDATA[<p>Learn how to incorporate the Facebook SDK into the CodeIgniter framework, using the available functions to create applications. &#8230;</p>
<p><a href="http://www.ibm.com/developerworks/web/library/wa-fbcodeigniter/index.html?ca=drs-" title="Create Facebook applications with CodeIgniter">Post original</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/08/25/create-facebook-applications-with-codeigniter.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Login en Facebook con PHP y CURL</title>
		<link>http://sentidoweb.com/2010/06/17/login-en-facebook-con-php-y-curl.php</link>
		<comments>http://sentidoweb.com/2010/06/17/login-en-facebook-con-php-y-curl.php#comments</comments>
		<pubDate>Thu, 17 Jun 2010 11:32:15 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[login]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2351</guid>
		<description><![CDATA[¿Para que usar CURL si se puede usar la API de Facebook? sencillo, porque la API no te permite obtener todos los datos que se pueden leer cuando navegas por Facebook. Por ello, en alguna ocasión, nos podemos encontrar con la necesidad de loguearnos en Facebook y &#8220;navegar&#8221; usando CURL: echo 'loading &#60;br/&#62;'; $login_email = [...]]]></description>
			<content:encoded><![CDATA[<p>¿Para que usar CURL si se puede usar la API de Facebook? sencillo, porque la API no te permite obtener todos los datos que se pueden leer cuando navegas por Facebook. Por ello, en alguna ocasión, nos podemos encontrar con la necesidad de loguearnos en Facebook y &#8220;navegar&#8221; usando CURL:</p>
<pre><code><pre class="php"><a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'loading &lt;br/&gt;'</span>;
        <span style="color: #3E6D8F;">$login_email</span> = <span style="color: #ff0000;">'my@sexy.mail'</span>;
        <span style="color: #3E6D8F;">$login_pass</span> = <span style="color: #ff0000;">'my_sexy_password'</span>;
&nbsp;
<span style="color: #3E6D8F;">$fp</span> = <a href="http://www.php.net/fopen"><span style="color: #000066;">fopen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"fb_cookies.txt"</span>, w<span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/fclose"><span style="color: #000066;">fclose</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$fp</span><span style="color: #66cc66;">&#41;</span>; 
&nbsp;
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'still loading &lt;br/&gt;'</span>;
&nbsp;
<span style="color: #723b00;">if</span> <span style="color: #66cc66;">&#40;</span>fb_login<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_email</span>,<span style="color: #3E6D8F;">$login_pass</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
<span style="color: #3E6D8F;">$ch</span> = curl_init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_URL, <span style="color: #ff0000;">'https://login.facebook.com/login.php?login_attempt=1'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_POSTFIELDS,<span style="color: #ff0000;">'charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&amp;locale=en_US&amp;email='</span>.urlencode<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_email</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&amp;pass='</span>.urlencode<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_pass</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&amp;pass_placeholder=&amp;charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_POST, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_HEADER, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_FOLLOWLOCATION, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_SSL_VERIFYPEER, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_COOKIEJAR, <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\</span>'</span>,<span style="color: #ff0000;">'/'</span>,<a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/fb_cookies.txt'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_COOKIEFILE, <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\</span>'</span>,<span style="color: #ff0000;">'/'</span>,<a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/fb_cookies.txt'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_RETURNTRANSFER, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_USERAGENT, <span style="color: #ff0000;">"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)"</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$html</span> = curl_exec<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
 curl_close<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
  <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #3E6D8F;">$html</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> fb_login<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_email</span>, <span style="color: #3E6D8F;">$login_pass</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
 <span style="color: #3E6D8F;">$ch</span> = curl_init<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_URL, <span style="color: #ff0000;">'https://login.facebook.com/login.php?login_attempt=1'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_POSTFIELDS,<span style="color: #ff0000;">'charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&amp;locale=en_US&amp;email='</span>.urlencode<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_email</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&amp;pass='</span>.urlencode<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$login_pass</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&amp;pass_placeholder=&amp;charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_POST, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_HEADER, <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_FOLLOWLOCATION, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_SSL_VERIFYPEER, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_COOKIEJAR, <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\</span>'</span>,<span style="color: #ff0000;">'/'</span>,<a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/fb_cookies.txt'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_COOKIEFILE, <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\</span>'</span>,<span style="color: #ff0000;">'/'</span>,<a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'/fb_cookies.txt'</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_RETURNTRANSFER, <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
 curl_setopt<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span>, CURLOPT_USERAGENT, <span style="color: #ff0000;">"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)"</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$html</span> = curl_exec<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span><span style="color: #66cc66;">&#41;</span>;
 <span style="color: #3E6D8F;">$err</span> = <span style="color: #cc66cc;">0</span>;
 <span style="color: #3E6D8F;">$err</span> = curl_errno<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span><span style="color: #66cc66;">&#41;</span>; 
 curl_close<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$ch</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
 <span style="color: #723b00;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$err</span> != <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
 <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'error='</span>.<span style="color: #3E6D8F;">$err</span>.<span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\n</span>"</span>;
 <span style="color: #723b00;">return</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
 <span style="color: #66cc66;">&#125;</span> <span style="color: #723b00;">else</span> <span style="color: #66cc66;">&#123;</span>
 <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'fetching..'</span>;
 <span style="color: #723b00;">return</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
 <span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre></code></pre>
<p><a href="http://pastie.org/619912">Código fuente en Pastie</a></p>
<p>Vía / <a href="http://stackoverflow.com/questions/798785/login-into-facebook-with-php-script-but-let-me-logged-in-the-browser-after-the-e">Stack Overflow</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/06/17/login-en-facebook-con-php-y-curl.php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cómo autenticar usuarios con Facebook Connect usando PHP</title>
		<link>http://sentidoweb.com/2010/06/13/como-autenticar-usuarios-con-facebook-connect-usando-php.php</link>
		<comments>http://sentidoweb.com/2010/06/13/como-autenticar-usuarios-con-facebook-connect-usando-php.php#comments</comments>
		<pubDate>Sun, 13 Jun 2010 19:18:10 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[autenticacion]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2346</guid>
		<description><![CDATA[Completo tutorial que nos explica paso a paso qué tenemos que hacer para que nuestros usuarios se puedan autenticar usando Facebook Connect (la nueva API de Facebook mucho más sencilla que la anterior). El tutorial se divide en los siguientes pasos: Crear la tabla MySQL para nuestra aplicación, esto lo tendremos que modificar según nuestra [...]]]></description>
			<content:encoded><![CDATA[<p>Completo tutorial que nos explica paso a paso qué tenemos que hacer para que nuestros usuarios se puedan autenticar usando Facebook Connect (la nueva API de Facebook mucho más sencilla que la anterior).</p>
<p>El tutorial se divide en los siguientes pasos:</p>
<ul>
	<li>Crear la tabla MySQL para nuestra aplicación, esto lo tendremos que modificar según nuestra aplicación</li>
	<li>Dar de alta la aplicación en Facebook</li>
	<li>La petición de permiso</li>
	<li>El registro y la autenticación</li>
	<li>Extender los permisos que se solicita</li>
	<li>Comprobar si se tiene permisos</li>
	<li>Publicar en el muro</li>
</ul>
<p><a href="http://net.tutsplus.com/tutorials/php/how-to-authenticate-your-users-with-facebook-connect/">How to Authenticate Users With Facebook Connect</a></p>
<p>Vía / <a href="http://www.phpdeveloper.org/news/14639">PHPDeveloper.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/06/13/como-autenticar-usuarios-con-facebook-connect-usando-php.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP SDK de Open Graph de Facebook</title>
		<link>http://sentidoweb.com/2010/05/04/php-sdk-de-open-graph-de-facebook.php</link>
		<comments>http://sentidoweb.com/2010/05/04/php-sdk-de-open-graph-de-facebook.php#comments</comments>
		<pubDate>Tue, 04 May 2010 15:09:43 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open graph]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2296</guid>
		<description><![CDATA[Si el otro día comentaba la nueva API de Open Graph de Facebook, ahora encuentro una librería que nos permite trabajar de forma sencilla con esta API: include_once 'lib/facebook.php'; include_once 'config.php'; $facebook = new Facebook&#40;array&#40; 'appId' =&#62; FACEBOOK_API_KEY, 'secret' =&#62; FACEBOOK_SECRET_KEY, 'cookie' =&#62; true, 'domain' =&#62; 'phpfour.com' &#41;&#41;; $session = $facebook-&#62;getSession&#40;&#41;; if &#40;!$session&#41; &#123; $url [...]]]></description>
			<content:encoded><![CDATA[<p>Si el otro día comentaba <a href="http://sentidoweb.com/2010/04/27/api-de-open-graph-de-facebook.php" title="API de Open Graph de Facebook">la nueva API de Open Graph de Facebook</a>, ahora encuentro una librería que nos permite trabajar de forma sencilla con esta API:</p>
<pre><code><pre class="php"><span style="color: #723b00;">include_once</span> <span style="color: #ff0000;">'lib/facebook.php'</span>;
<span style="color: #723b00;">include_once</span> <span style="color: #ff0000;">'config.php'</span>;
<span style="color: #3E6D8F;">$facebook</span> = <span style="color: #000000; font-weight: bold;">new</span> Facebook<span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
  <span style="color: #ff0000;">'appId'</span>  =&gt; FACEBOOK_API_KEY,
  <span style="color: #ff0000;">'secret'</span> =&gt; FACEBOOK_SECRET_KEY,
  <span style="color: #ff0000;">'cookie'</span> =&gt; <span style="color: #000000; font-weight: bold;">true</span>,
  <span style="color: #ff0000;">'domain'</span> =&gt; <span style="color: #ff0000;">'phpfour.com'</span>
<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$session</span> = <span style="color: #3E6D8F;">$facebook</span>-&gt;<span style="color: #006600;">getSession</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #723b00;">if</span> <span style="color: #66cc66;">&#40;</span>!<span style="color: #3E6D8F;">$session</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #3E6D8F;">$url</span> = <span style="color: #3E6D8F;">$facebook</span>-&gt;<span style="color: #006600;">getLoginUrl</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">'canvas'</span> =&gt; <span style="color: #cc66cc;">1</span>,
    <span style="color: #ff0000;">'fbconnect'</span> =&gt; <span style="color: #cc66cc;">0</span>
  <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
  <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"&lt;script type='text/javascript'&gt;top.location.href = '$url';&lt;/script&gt;"</span>;
<span style="color: #66cc66;">&#125;</span> <span style="color: #723b00;">else</span> <span style="color: #66cc66;">&#123;</span>
  try <span style="color: #66cc66;">&#123;</span>
    <span style="color: #3E6D8F;">$uid</span> = <span style="color: #3E6D8F;">$facebook</span>-&gt;<span style="color: #006600;">getUser</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #3E6D8F;">$me</span> = <span style="color: #3E6D8F;">$facebook</span>-&gt;<span style="color: #006600;">api</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/me'</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #3E6D8F;">$updated</span> = <a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"l, F j, Y"</span>, <a href="http://www.php.net/strtotime"><span style="color: #000066;">strtotime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$me</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'updated_time'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"Hello "</span> . <span style="color: #3E6D8F;">$me</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#93;</span> . <span style="color: #ff0000;">"&lt;br /&gt;"</span>;
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"You last updated your profile on "</span> . <span style="color: #3E6D8F;">$updated</span>;
  <span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>FacebookApiException <span style="color: #3E6D8F;">$e</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"Error:"</span> . <a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$e</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></code></pre>
<p><a href="http://github.com/facebook/php-sdk/">PHP-SDK Facebook</a></p>
<p>Vía / <a href="http://www.phpfour.com/blog/2010/05/quick-start-on-new-facebook-php-sdk-iframe-based/">Md Emran Hasan</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/05/04/php-sdk-de-open-graph-de-facebook.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XH GUI: GUI para XHProf</title>
		<link>http://sentidoweb.com/2010/04/28/xh-gui-gui-para-xhprof.php</link>
		<comments>http://sentidoweb.com/2010/04/28/xh-gui-gui-para-xhprof.php#comments</comments>
		<pubDate>Tue, 27 Apr 2010 23:30:32 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[xhprof]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2288</guid>
		<description><![CDATA[Hace un tiempo, Facebook lanzó XHProf una librería que permite realizar debug de las aplicaciones, ahora sale una GUI que permite mostrar los datos obtenidos de XHProf. MySQL para almacenar los datos Almacena picos de uso de memoria, tiempos, CPU y estadisticas de las bases de datos Compara datos de GET, POST y cookies Usa [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo, Facebook lanzó <a href="http://sentidoweb.com/2009/12/04/xhprof-alternativa-a-xdebug-desarrollada-por-facebook.php">XHProf una librería que permite realizar debug de las aplicaciones</a>, ahora sale una GUI que permite mostrar los datos obtenidos de XHProf.</p>
<p><img src="http://sentidoweb.com/wp-content/uploads/2010/04/xhgui.png" alt="" title="xhgui" class="center" /></p>
<ul>
	<li>MySQL para almacenar los datos</li>
	<li>Almacena picos de uso de memoria, tiempos, CPU y estadisticas de las bases de datos</li>
	<li>Compara datos de GET, POST y cookies</li>
	<li>Usa los gráficos de Google Data Visualization API</li>
</ul>
<p><a href="http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html">A GUI for XHProf</a>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/04/28/xh-gui-gui-para-xhprof.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API de Open Graph de Facebook</title>
		<link>http://sentidoweb.com/2010/04/27/api-de-open-graph-de-facebook.php</link>
		<comments>http://sentidoweb.com/2010/04/27/api-de-open-graph-de-facebook.php#comments</comments>
		<pubDate>Tue, 27 Apr 2010 00:04:15 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open graph]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2286</guid>
		<description><![CDATA[Si el otro día salía Open Graph de Facebook, ahora hay que ponerse a hacer aplicaciones para hacer uso de esta API, porque nos guste o no, Facebook nos puede aportar mucho a nuestra aplicación. La verdad es que la API es muy sencilla: llamada http que devuelve JSON. Siendo la URL de la llamada [...]]]></description>
			<content:encoded><![CDATA[<p>Si el otro día salía <a href="http://www.error500.net/articulo/open-graph-facebook-a-conquista-web">Open Graph de Facebook</a>, ahora hay que ponerse a hacer aplicaciones para hacer uso de esta API, porque nos guste o no, Facebook nos puede aportar mucho a nuestra aplicación.</p>
<p>La verdad es que la API es muy sencilla: llamada http que devuelve JSON. Siendo la URL de la llamada de esta forma:</p>
<pre><code>https://graph.facebook.com/ID<em>[/CONNECTION_TYPE]</em></code></pre>
<p>Lo bueno es que el ID puede ser cualquiera: un usuario, una página, un status, una aplicación, &#8230; Y luego se le puede añadir el tipo de conexión para obtener los amigos, los vídeos, &#8230; de un usuario.</p>
<p><a href="http://developers.facebook.com/docs/api">Facebook Graph API</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/04/27/api-de-open-graph-de-facebook.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enlaces rápidos (16-02-2010)</title>
		<link>http://sentidoweb.com/2010/02/16/enlaces-rapidos-16-02-2010.php</link>
		<comments>http://sentidoweb.com/2010/02/16/enlaces-rapidos-16-02-2010.php#comments</comments>
		<pubDate>Tue, 16 Feb 2010 22:05:19 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2189</guid>
		<description><![CDATA[Unos cuantos enlaces rápidos, con temática centrada en NoSQL The Common Principles Behind the NOSQL Alternatives Building Super Scalable Systems: Blade Runner Meets Autonomic Computing in the Ambient Cloud Why Swapping is bad for MySQL Performance? Open Source Video, Audio &#38; Podcast Publishing Platform Data in Flight &#8211; SQL Stream What Will Kill the Cloud? [...]]]></description>
			<content:encoded><![CDATA[Unos cuantos enlaces rápidos, con temática centrada en NoSQL
<ul>
	<li><a href="http://natishalom.typepad.com/nati_shaloms_blog/2009/12/the-common-principles-behind-the-nosql-alternatives.html">The Common Principles Behind the NOSQL Alternatives</a></li>
	<li><a href="http://highscalability.com/blog/2009/12/16/building-super-scalable-systems-blade-runner-meets-autonomic.html">Building Super Scalable Systems: Blade Runner Meets Autonomic Computing in the Ambient Cloud</a></li>
	<li><a href="http://www.mysqlperformanceblog.com/2010/01/18/why-swapping-is-bad-for-mysql-performance/">Why Swapping is bad for MySQL Performance?</a></li>
	<li><a href="http://www.webappers.com/2010/01/19/open-source-video-audio-podcast-publishing-platform/">Open Source Video, Audio &amp; Podcast Publishing Platform</a></li>
	<li><a href="http://cacm.acm.org/magazines/2010/1/55738-data-in-flight/fulltext">Data in Flight &#8211; SQL Stream</a></li>
	<li><a href="http://highscalability.com/blog/2010/2/1/what-will-kill-the-cloud.html">What Will Kill the Cloud?</a></li>
	<li><a href="http://thenextweb.com/us/2010/01/30/google-kill-ie6">Can Google really kill IE6?</a></li>
	<li><a href="http://ilia.ws/archives/213-My-Thoughts-on-HipHop.html">My Thoughts on HipHop</a></li>
	<li><a href="http://highscalability.com/blog/2010/2/3/nosql-means-never-having-to-store-blobs-again.html">NoSQL Means Never Having to Store Blobs Again</a></li>
	<li><a href="http://www.anieto2k.com/2010/02/04/css-sprites-para-mejorar-las-fechas-de-tus-posts">CSS Sprites para mejorar las fechas de tus posts</a></li>
	<li><a href="http://www.dinnermint.org/css/creating-triangles-in-css/">Creating Triangles in CSS</a></li>
	<li><a href="http://wiki.github.com/voldemort/voldemort/voldemort-rebalancing">Voldemort Rebalancing</a></li>
	<li><a href="http://thenoisychannel.com/2010/01/31/linkedin-search-a-look-beneath-the-hood/">LinkedIn usa Lucene en su arquitectura</a></li>
	<li><a href="http://blogs.computerworld.com/15510/the_end_of_sql_and_relational_databases_part_1_of_3">The end of SQL and relational databases?</a></li>
	<li><a href="http://blog.creativityden.com/the-hidden-power-of-border-radius-2/">The Hidden Power of border-radius</a></li>
	<li><a href="http://www.ioug.org/client_files/members/select_pdf/05q1/003_OracleMySQL.pdf">A Comparison of Oracle and MySQL</a></li>
	<li><a href="http://jayant7k.blogspot.com/2006/06/benchmarking-results-of-mysql-lucene.html">Benchmarking results of mysql, lucene and sphinx</a></li>
	<li><a href="http://code.flickr.com/blog/2010/02/08/using-abusing-and-scaling-mysql-at-flickr/">Using, Abusing and Scaling MySQL at Flickr</a></li>
	<li><a href="http://code.flickr.com/blog/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/">Ticket Servers: Distributed Unique Primary Keys on the Cheap</a> &#8220;Flickr admite más de 60 fotos nuevas por segundo&#8221;</li>
	<li><a href="http://abhinavsingh.com/blog/2009/01/mysql-query-cache-wp-cache-apc-memcache-what-to-choose/">MySQL Query Cache, WP-Cache, APC, Memcache – What to choose</a></li>
	<li><a href="http://highscalability.com/blog/2010/2/10/elasticsearch-open-source-distributed-restful-search-engine.html">ElasticSearch &#8211; Open Source, Distributed, RESTful Search Engine</a></li>
	<li><a href="http://blog.facebook.com/blog.php?post=297991732130">Facebook permite chat vía jabber</a></li>
	<li><a href="http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/">History of the user-agent string</a></li>
	<li><a href="http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/">Top 10 Things that JavaScript Got Wrong</a></li>
	<li><a href="http://highscalability.com/blog/2010/2/16/seven-signs-you-may-need-a-nosql-database.html">Seven Signs You May Need a NoSQL Database</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/02/16/enlaces-rapidos-16-02-2010.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook desarrolla XHP</title>
		<link>http://sentidoweb.com/2010/02/12/facebook-desarrolla-xhp.php</link>
		<comments>http://sentidoweb.com/2010/02/12/facebook-desarrolla-xhp.php#comments</comments>
		<pubDate>Fri, 12 Feb 2010 12:49:38 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[xhp]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2178</guid>
		<description><![CDATA[Si el otro día Facebook nos sorprendía con HipHop, hoy me entero que también han desarrollado una extensión para PHP llamada XHP, la cual permite añadir XML (o HTML) en el código PHP y que sea una expresión válida. ¿Qué quiere decir esto?, pues que no es necesario hacer tratar el HTML como string o [...]]]></description>
			<content:encoded><![CDATA[Si el otro día <a href="http://sentidoweb.com/2010/02/03/facebook-crea-hiphop-para-php.php">Facebook nos sorprendía con HipHop</a>, hoy me entero que también han desarrollado una extensión para PHP llamada XHP, la cual permite añadir XML (o HTML) en el código PHP y que sea una expresión válida. ¿Qué quiere decir esto?, pues que no es necesario hacer tratar el HTML como string o usar <em>?&gt; &#8230; &lt;?php</em> para añadir HTML en nuestros scripts.
<pre><code><pre class="php"><span style="color: #3E6D8F;">$href</span> = <span style="color: #ff0000;">'http://www.facebook.com'</span>; 
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> &amp;lt;a href=<span style="color: #66cc66;">&#123;</span><span style="color: #3E6D8F;">$href</span><span style="color: #66cc66;">&#125;</span>&amp;gt;Facebook&amp;lt;/a&amp;gt;;</pre></code></pre>
Además escapa automáticamente el contenido de las variables para evitar vulnerabilidades:
<pre><code><pre class="php">&amp;lt;?php
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">'&amp;lt;div&amp;gt;Hello '</span>.htmlspecialchars<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&amp;lt;/div&amp;gt;'</span>;</pre></code></pre>
<pre><code><pre class="php">&amp;lt;?php
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> &amp;lt;div&amp;gt;Hello <span style="color: #66cc66;">&#123;</span><span style="color: #3E6D8F;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#125;</span>&amp;lt;/div&amp;gt;</pre></code></pre>
También ofrece la posibilidad de definir elementos XML, sus atributos o su estructura.

Tengo mis dudas sobre su rendimiento, pero pensando en que ellos &#8220;compilan&#8221; el código PHP, al final no les afectará en rendimiento.

<a href="http://wiki.github.com/facebook/xhp/">XHP</a>

Vía / <a href="http://www.phpdeveloper.org/news/14004">PHPDeveloper.org</a>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/02/12/facebook-desarrolla-xhp.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

