<?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>deerme</title>
	<atom:link href="http://deerme.org/feed" rel="self" type="application/rss+xml" />
	<link>http://deerme.org</link>
	<description>development and more</description>
	<lastBuildDate>Sat, 19 May 2012 03:56:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Configurar proxy para una sesión CURL en PHP</title>
		<link>http://deerme.org/php/configurar-proxy-para-una-sesion-curl-en-php</link>
		<comments>http://deerme.org/php/configurar-proxy-para-una-sesion-curl-en-php#comments</comments>
		<pubDate>Thu, 03 May 2012 04:25:57 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Scraping]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=400</guid>
		<description><![CDATA[Si necesitas utilizar un proxy en CURL (en php) para la extración de datos, solo debes configurar los parametro CURLOPT_PROXY, CURLOPT_PROXYPORT y CURLOPT_PROXYUSERPWD con curl_setopt. El siguiente ejemplo, utiliza el proxy 192.168.1.10 puerto 8080 para acceder a la url http://intranet/news.aspx, además de auntentificación NTLM (opcional).]]></description>
			<content:encoded><![CDATA[<p>Si necesitas utilizar un proxy en CURL (en php) para la extración de datos, solo debes configurar los parametro CURLOPT_PROXY, CURLOPT_PROXYPORT y CURLOPT_PROXYUSERPWD con curl_setopt. </p>
<p>El siguiente ejemplo, utiliza el proxy 192.168.1.10 puerto 8080 para acceder a la url http://intranet/news.aspx, además de auntentificación NTLM (opcional).</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$user = &quot;user&quot;;
$pass = &quot;qwerty&quot;;

$ch = curl_init('http://intranet/news.aspx');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,&quot;show=1&quot;);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$pass);

curl_setopt($ch, CURLOPT_PROXY, &quot;http://192.168.1.10:8080&quot;);
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, &quot;user-proxy:user-pass&quot;); 

$buffer = curl_exec($ch);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/php/configurar-proxy-para-una-sesion-curl-en-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autentificación NTLM a través de CURL en PHP</title>
		<link>http://deerme.org/php/autentificacion-ntlm-a-traves-de-curl-en-php</link>
		<comments>http://deerme.org/php/autentificacion-ntlm-a-traves-de-curl-en-php#comments</comments>
		<pubDate>Thu, 03 May 2012 04:17:52 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Scraping]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=393</guid>
		<description><![CDATA[A veces es necesario extraer datos de una aplicación web, que solicite autentificación NTLM (por ejemplo una aplicación web en .net bajo IIS), a través de CURL, podemos configurar las credenciales NTLM para acceder al recurso solicitado. Solo debemos setear el parámetro CURLOPT_HTTPAUTH con la constante CURLAUTH_NTLM. El siguiente ejemplo postea un par de datos [...]]]></description>
			<content:encoded><![CDATA[<p>A veces es necesario extraer datos de una aplicación web, que solicite autentificación NTLM (por ejemplo una aplicación web en .net bajo IIS), a través de CURL, podemos configurar las credenciales NTLM para acceder al recurso solicitado.</p>
<p>Solo debemos setear el parámetro <strong>CURLOPT_HTTPAUTH</strong> con la constante CURLAUTH_NTLM. El siguiente ejemplo postea un par de datos a la url http://intranet/news.aspx, que solicita autentificación por NTLM.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$user = &quot;user&quot;;
$pass = &quot;qwerty&quot;;

$ch = curl_init('http://intranet/news.aspx');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,&quot;show=1&quot;);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$pass);

$buffer = curl_exec($ch);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/php/autentificacion-ntlm-a-traves-de-curl-en-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cambiar datos de acceso, modificación y creación de un archivo</title>
		<link>http://deerme.org/linux/cambiar-datos-de-acceso-modificacion-y-creacion-de-un-archivo</link>
		<comments>http://deerme.org/linux/cambiar-datos-de-acceso-modificacion-y-creacion-de-un-archivo#comments</comments>
		<pubDate>Thu, 03 May 2012 04:05:53 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[timestamp]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=386</guid>
		<description><![CDATA[A veces es necesario cambiar de forma arbitraria las fecha de acceso, modificación y creación de un archivo bajo una plataforma like unix como GNU/Linux. En este caso, touch nos puede ser de mucha ayuda. Con stat, podemos ver información de estado de un archivo (timestamp access, modification and change) Con el comando touch, podemos [...]]]></description>
			<content:encoded><![CDATA[<p>A veces es necesario cambiar de forma arbitraria las fecha de acceso, modificación y creación de un archivo bajo una plataforma like unix como GNU/Linux. En este caso, touch nos puede ser de mucha ayuda.</p>
<p>Con stat, podemos ver información de estado de un archivo (timestamp access, modification and change)</p>
<pre class="brush: bash; title: ; notranslate">
stat script.sh
</pre>
<p><img src="http://deerme.org/wp-content/uploads/2012/05/linux-touch-stat.png" alt="" title="linux-touch-stat" width="550" height="132" class="alignnone size-full wp-image-387" /></p>
<p>Con el comando touch, podemos modificar la fecha de acceso y modificación de un archivo</p>
<pre class="brush: bash; title: ; notranslate">
# el parametro t debe tener el formato YYYYMMDDHHmm.ss
touch -c -m -a -t 201101010745.30 script.sh
</pre>
<p><img src="http://deerme.org/wp-content/uploads/2012/05/linux-touch-stat-2.png" alt="" title="linux-touch-stat-2" width="550" height="281" class="alignnone size-full wp-image-388" /></p>
<p>¿pero cómo modificamos la fecha de creación (change)?</p>
<p>Una alternativa (rápida y sucia xD) es &#8220;cambiando&#8221; por un instante, la fecha del sistema, realizar un &#8220;touch&#8221; y volver a la fecha original, el siguiente script realiza dicho proceso.</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash
CTIME=$1
CURTIME=$(date -u '+%m%d%H%M%Y')
date --set $CTIME
touch $2
date -u $CURTIME
</pre>
<p>Por lo tanto, para cambiar la fecha creación (change), podemos utilizar el script effective-touch.sh</p>
<pre class="brush: bash; title: ; notranslate">
./effective-touch.sh &quot;2010-01-01&quot; script.sh
</pre>
<p>Podemos ver, que hemos cambiado el párametro &#8220;change&#8221; del archivo script.sh, eso si, de forma muy sucia xD</p>
<p><img src="http://deerme.org/wp-content/uploads/2012/05/linux-touch-stat-3.png" alt="" title="linux-touch-stat-3" width="550" height="325" class="alignnone size-full wp-image-389" /></p>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/linux/cambiar-datos-de-acceso-modificacion-y-creacion-de-un-archivo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leer datos de una planilla excel en SQL Server</title>
		<link>http://deerme.org/databases/leer-datos-de-una-planilla-excel-en-sql-server</link>
		<comments>http://deerme.org/databases/leer-datos-de-una-planilla-excel-en-sql-server#comments</comments>
		<pubDate>Wed, 02 May 2012 19:10:26 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[importar]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=372</guid>
		<description><![CDATA[Una forma sencilla y rápida para leer datos de una planilla excel en SQL Server (sin utilizar herramientas externas) es a través de la sentencia OPENROWSET y el driver Microsoft.ACE.OLEDB. El siguiente ejemplo, lista los datos de la hoja Sheet1 de la planilla C:\gastos.xls Si es necesario insertar estos datos en una tabla específica, solo [...]]]></description>
			<content:encoded><![CDATA[<p>Una forma sencilla y rápida para leer datos de una planilla excel en SQL Server (sin utilizar herramientas externas) es a través de la sentencia OPENROWSET y el driver Microsoft.ACE.OLEDB.</p>
<p>El siguiente ejemplo, lista los datos de la hoja <strong>Sheet1</strong> de la planilla <strong>C:\gastos.xls</strong> </p>
<pre class="brush: sql; title: ; notranslate">
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;Database=C:\gastos.xls;',
'SELECT * FROM [Sheet1$]');
</pre>
<p>Si es necesario insertar estos datos en una tabla específica, solo debemos usar la sentencia insert into, ejemplo.</p>
<pre class="brush: sql; title: ; notranslate">
INSERT INTO tabla_gastos
select * from OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;Database=C:\gastos.xls;',
'SELECT * FROM [Sheet1$]');
</pre>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/databases/leer-datos-de-una-planilla-excel-en-sql-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leer datos de una tabla DBF en SQL Server</title>
		<link>http://deerme.org/databases/leer-datos-de-una-tabla-dbf-en-sql-server</link>
		<comments>http://deerme.org/databases/leer-datos-de-una-tabla-dbf-en-sql-server#comments</comments>
		<pubDate>Mon, 26 Mar 2012 20:24:20 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[dbf]]></category>
		<category><![CDATA[fox pro]]></category>
		<category><![CDATA[importar]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=368</guid>
		<description><![CDATA[A veces, en procesos de migración de sistema, es necesario importar datos de un antiguo DBF (muy común en entornos Visual Foxpro) a SQL Server. Hay varias formas, una de ellas, es a través de la sentencia OPENROWSET en SQL Server. Primero es necesario habilitar dos opciones en nuestra instancia de SQL Server, &#8220;show advanced [...]]]></description>
			<content:encoded><![CDATA[<p>A veces, en procesos de migración de sistema, es necesario importar datos de un antiguo <strong>DBF</strong> (muy común en entornos Visual Foxpro) a <strong>SQL Server</strong>. Hay varias formas, una de ellas, es a través de la sentencia <strong>OPENROWSET</strong> en SQL Server.</p>
<p>Primero es necesario habilitar dos opciones en nuestra instancia de SQL Server, &#8220;show advanced options&#8221; y &#8220;Ad Hoc Distributed Queries&#8221;. El siguiente query habilita las opciones.</p>
<pre class="brush: sql; title: ; notranslate">
sp_configure 'show advanced options', 1
reconfigure
go
exec sp_configure 'Ad Hoc Distributed Queries',1
go
reconfigure
go
</pre>
<p>Una vez habilitadas, podemos utilizar <strong>OPENROWSET</strong> para obtener datos de otras fuentes, en el ejemplo, datos de un archivo DBF.</p>
<pre class="brush: sql; title: ; notranslate">
-- El archivo se encuentra en c:\work\tabla.dbf
select * from OPENROWSET
('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;
DATABASE=C:\work\','select * from TABLA.DBF')
</pre>
<p>Si es necesario insertar estos datos en una tabla específica, solo debemos usar la sentencia insert into, ejemplo.</p>
<pre class="brush: sql; title: ; notranslate">

INSERT INTO tabla
select * from OPENROWSET
('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;
DATABASE=C:\work\','select CAMPO1,CAMPO2,CAMPO3 from TABLA.DBF')
</pre>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/databases/leer-datos-de-una-tabla-dbf-en-sql-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ejecutar un programa desde Java</title>
		<link>http://deerme.org/java/ejecutar-un-programa-desde-java</link>
		<comments>http://deerme.org/java/ejecutar-un-programa-desde-java#comments</comments>
		<pubDate>Thu, 23 Feb 2012 18:06:27 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=362</guid>
		<description><![CDATA[A veces es necesario ejecutar una aplicación externa de la principal en Java, en estos casos, java.lang.Runtime tiene la solución. A través del método exec, podemos ejecutar cualquier aplicación del sistema, por ejemplo, vamos a ejecutar el OUTLOOK.EXE junto al parámetro /a para adjuntar un archivo. &#160; &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>A veces es necesario ejecutar una aplicación externa de la principal en Java, en estos casos, <strong>java.lang.Runtime</strong> tiene la solución.</p>
<p>A través del método <strong>exec</strong>, podemos ejecutar cualquier aplicación del sistema, por ejemplo, vamos a ejecutar el OUTLOOK.EXE junto al parámetro /a para adjuntar un archivo.</p>
<p>&nbsp; <br/> &nbsp; <br/> &nbsp; <br/></p>
<pre class="brush: java; title: ; notranslate">
package org.deerme.examples;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author deermeorg
 */
public class TestExec {

    public static void main(String[] args) {
        try
        {
            Runtime app = Runtime.getRuntime();
            app.exec(&quot;C:\\Program Files (x86)\\Microsoft Office\\Office12\\OUTLOOK.EXE /a c:\\boot.ini&quot;);
        }
        catch (IOException ex)
        {
            System.out.println( ex.getMessage() );
        }
    }
}
</pre>
<p><a href="http://deerme.org/wp-content/uploads/2012/02/java-testexec.png"><img src="http://deerme.org/wp-content/uploads/2012/02/java-testexec.png" alt="" title="java-testexec" width="550" height="256" class="alignnone size-full wp-image-363" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/java/ejecutar-un-programa-desde-java/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>descargar y descomprimir archivo zip con python</title>
		<link>http://deerme.org/python/descargar-y-descomprimir-archivo-zip-con-python</link>
		<comments>http://deerme.org/python/descargar-y-descomprimir-archivo-zip-con-python#comments</comments>
		<pubDate>Tue, 07 Feb 2012 12:23:18 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=352</guid>
		<description><![CDATA[Pequeño script que permite descargar,guardar y descomprimir un archivo zip usando python y los módulos urllib2, sys y zipfile. &#160; &#160; &#160; &#160; &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>Pequeño script que permite descargar,guardar y descomprimir un archivo zip usando python y los módulos urllib2, sys y zipfile.</p>
<p>&nbsp; <br/>&nbsp; <br/>&nbsp; <br/>&nbsp; <br/>&nbsp; <br/>&nbsp; <br/> </p>
<pre class="brush: python; title: ; notranslate">
import urllib2, sys, zipfile

tmp_path = '/tmp/'
doc_url = 'http://example.org/file.zip'

u = urllib2.urlopen(doc_url)
localFile = open(tmp_path + &quot;/tmp-zip.zip&quot; , 'w')
localFile.write(u.read())
localFile.close()

sourceZip = zipfile.ZipFile( tmp_path + &quot;/tmp-zip.zip&quot; ,  'r')
for name in sourceZip.namelist():
	print name
	sourceZip.extract(name, tmp_path + &quot;/&quot; + name )
sourceZip.close()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/python/descargar-y-descomprimir-archivo-zip-con-python/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>descargar y guardar un archivo en .net c#</title>
		<link>http://deerme.org/net-c/descargar-y-guardar-un-archivo-en-net-csharp</link>
		<comments>http://deerme.org/net-c/descargar-y-guardar-un-archivo-en-net-csharp#comments</comments>
		<pubDate>Tue, 07 Feb 2012 12:06:22 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[.NET C#]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[extract]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=343</guid>
		<description><![CDATA[WebClient, es una clase en .NET del package System.Net, permite enviar o recibir datos de recursos indentificados por una URL (ejemplo, un enlace FTP ). El siguiente ejemplo permite descargar y guardar un archivo en .NET C# &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Toda la ciencia la realiza la el método DownloadFile, [...]]]></description>
			<content:encoded><![CDATA[<p>WebClient, es una clase en .NET del package System.Net, permite enviar o recibir datos de recursos indentificados por una URL (ejemplo, un enlace FTP ). El siguiente ejemplo permite descargar y guardar un archivo en .NET C#</p>
<p> &nbsp; &nbsp; &nbsp; <br/> &nbsp; &nbsp; <br/> &nbsp; &nbsp; <br/> &nbsp; &nbsp; </p>
<pre class="brush: csharp; title: ; notranslate">
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace ExampleDownloadFile
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                WebClient webClient = new WebClient();
                webClient.DownloadFile(&quot;http://example.org/data.zip&quot;, @&quot;c:/data.zip&quot;);
            }
            catch( Exception ex)
            {
                System.Console.WriteLine( &quot;Problem: &quot; + ex.Message );
            }
        }
    }
}
</pre>
<p>Toda la ciencia la realiza la el método DownloadFile, que permite descargar y guardar el archivo en forma sincrona.</p>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/net-c/descargar-y-guardar-un-archivo-en-net-csharp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Capturar datos de otra web en PHP</title>
		<link>http://deerme.org/php/capturar-datos-de-otra-web-en-php</link>
		<comments>http://deerme.org/php/capturar-datos-de-otra-web-en-php#comments</comments>
		<pubDate>Wed, 30 Nov 2011 13:33:13 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Scraping]]></category>
		<category><![CDATA[extración de datos]]></category>
		<category><![CDATA[web scraping]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=315</guid>
		<description><![CDATA[A veces es necesario extraer datos &#8220;públicos&#8221; desde alguna fuente en internet, en PHP, lo podemos hacer con un GET y una que otra expresión regular. Como en todo, hay varias formas, pero creo que la más sencilla es utilizar la función file_get_contents para realizar un simple GET y obtener el contenido del sitio web. [...]]]></description>
			<content:encoded><![CDATA[<p>A veces es necesario extraer datos &#8220;públicos&#8221; desde alguna fuente en internet, en PHP, lo podemos hacer con un GET y una que otra expresión regular.</p>
<p>Como en todo, hay varias formas, pero creo que la más sencilla es utilizar la función file_get_contents para realizar un simple GET y obtener el contenido del sitio web.</p>
<p>La función file_get_contents soporta varios wrappers, desde un archivo local (ejemplo /tmp/my-file) a una url http, pasando por ftp, scp, etc. (<a href="http://es.php.net/manual/en/wrappers.php">más información sobre wrappers</a>).</p>
<p>Vamos a extraer la UF desde el sitio www.terra.cl/valores/</p>
<p><a href="http://deerme.org/wp-content/uploads/2011/11/php-uf-terra.png"><img src="http://deerme.org/wp-content/uploads/2011/11/php-uf-terra.png" alt="" title="php-uf-terra" width="550" height="334" class="alignnone size-full wp-image-316" /></a></p>
<p>Al analizar el código fuente del sitio, podemos ver que la UF se encuentra en el siguiente trozo de código</p>
<pre class="brush: xml; title: ; notranslate">
&lt;tr bgcolor=&quot;EFEBE7&quot;&gt;
            &lt;td align=&quot;right&quot; class=&quot;texto2&quot;&gt;UF : &lt;/td&gt;

            &lt;td class=&quot;texto2&quot;&gt;&lt;b&gt;22.213,43&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
</pre>
<p>Solo nos queda realizar una expresión regular que sea capaz de representar al patrón del trozo de código y la sección que deseamos capturar.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// Example by deerme.org
$data = file_get_contents(&quot;http://www.terra.cl/valores/&quot;);

if ( preg_match('|&lt;td align=&quot;right&quot; class=&quot;texto2&quot;&gt;UF : &lt;/td&gt;\s+&lt;td class=&quot;texto2&quot;&gt;&lt;b&gt;(.*?)&lt;/b&gt;&lt;/td&gt;|is' , $data , $cap ) )
{
	echo &quot;UF &quot;.$cap[1];
}
</pre>
<p>Si ejecutamos nuestro script (vía web o por consola) obtenemos la UF de hoy a través de Terra xD.</p>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/php/capturar-datos-de-otra-web-en-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>leer la entrada estándar stdin por php</title>
		<link>http://deerme.org/php/leer-la-entrada-estandar-stdin-por-php</link>
		<comments>http://deerme.org/php/leer-la-entrada-estandar-stdin-por-php#comments</comments>
		<pubDate>Thu, 24 Nov 2011 14:38:02 +0000</pubDate>
		<dc:creator>deerme.org</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[stdin]]></category>

		<guid isPermaLink="false">http://deerme.org/?p=307</guid>
		<description><![CDATA[Es muy común leer la entrada standard cuando realizamos en un script de línea de comandos, en php, lo podemos realizar directamente accediendo al stream stdin e iterando y obteniendo el contenido a través fgets. El siguiente ejemplo (muy sencillo y poco funcional xD), lee la entrada standard stdin y toma un par de acciones [...]]]></description>
			<content:encoded><![CDATA[<p>Es muy común leer la entrada standard cuando realizamos en un script de línea de comandos, en php, lo podemos realizar directamente accediendo al stream stdin e iterando y obteniendo el contenido a través fgets.</p>
<p>El siguiente ejemplo (muy sencillo y poco funcional xD), lee la entrada standard stdin y toma un par de acciones (de hecho solo dos, time y quit xD).</p>
<p><br/>&nbsp;<br/></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$p = fopen(&quot;php://stdin&quot;.&quot;r&quot;);
if($p)
{
	while( !feof($p) )
	{
		$buff = trim( fgets($P , 4096) );
		if ( $buff == &quot;time&quot; )
			echo date(&quot;Y-m-d H:i:s&quot;).&quot;\n&quot;;
		if ( $buff == &quot;quit&quot; )
		{
			echo &quot;bye =)&quot;;
			exit();
		}
	}
}
</pre>
<p><a href="http://deerme.org/wp-content/uploads/2011/11/php-stdin.png"><img src="http://deerme.org/wp-content/uploads/2011/11/php-stdin.png" alt="" title="php-stdin" width="550" height="324" class="alignnone size-full wp-image-308" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://deerme.org/php/leer-la-entrada-estandar-stdin-por-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

