<?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>PHPBlog.it &#187; riga di comando</title>
	<atom:link href="http://phpblog.it/tag/riga-di-comando/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpblog.it</link>
	<description>Solo un altro blog targato WordPress</description>
	<lastBuildDate>Mon, 21 May 2012 21:45:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Una shell in PHP</title>
		<link>http://phpblog.it/2008/04/01/una-shell-in-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=una-shell-in-php</link>
		<comments>http://phpblog.it/2008/04/01/una-shell-in-php/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 06:00:48 +0000</pubDate>
		<dc:creator>Davide Borsatto</dc:creator>
				<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[riga di comando]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/04/01/una-shell-in-php/</guid>
		<description><![CDATA[PHP purtroppo non fornisce di default una shell per la prova dei comandi, come fanno ad esempio python e ruby (con irb). Nella rete per fortuna si trovano delle buone alternative destinate a chi può interessare uno strumento simile. Oggi ho trovato questa compatta soluzione in una riga (due, se si considera quella per indicare [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/04/01/una-shell-in-php/' addthis:title='Una shell in PHP '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<p>PHP purtroppo non fornisce di default una <strong>shell</strong> per la prova dei comandi, come fanno ad esempio python e ruby (con irb).</p>
<p>Nella rete per fortuna si trovano delle buone alternative destinate a chi può interessare uno strumento simile.</p>
<p><span id="more-78"></span></p>
<p>Oggi ho trovato questa compatta soluzione in una riga (due, se si considera quella per indicare la posizione dell&#8217;interprete); ecco il codice:</p>
<pre>
#!/usr/bin/php</pre>
<p>O in forma più leggibile</p>
<pre>
#!/usr/bin/php
while (1)
{
fputs ( STDOUT, "\n\-PHP$ ");
eval ( fgets ( STDIN ) );
}
?&gt;</pre>
<p>Questo piccolo script fa nell&#8217;ordine:</p>
<pre>
#!/usr/bin/php</pre>
<p>Indica dove risiede l&#8217;interprete.</p>
<pre>
while (1)</pre>
<p>Apre un <em>loop</em> while infinito, in quanto &#8220;1&#8243; è una condizione sempre vera. Si poteva scrivere anche while (true).</p>
<pre>
fputs ( STDOUT, "\n\-PHP$ ");</pre>
<p>Stampa un bel <strong>prompt</strong> per la nostra shell. STDOUT è la &#8220;destinazione&#8221; dove vengono inviati i dati con fputs.</p>
<pre>
eval ( fgets( STDIN ) );</pre>
<p><em>fgets</em> legge il codice da STDIN (il buffer di input predefinito, leggibile come un file), ed <em>eval</em> prende l&#8217;input, lo trasforma in codice e lo esegue. Semplice no?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://phpblog.it/2008/04/01/una-shell-in-php/' addthis:title='Una shell in PHP '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/04/01/una-shell-in-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

