<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commenti a: Convertire un documento RTF in testo in PHP</title>
	<atom:link href="http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
	<description>Appunti di viaggio di Chalda Pnuzig</description>
	<lastBuildDate>Mon, 30 Jan 2012 19:07:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Di: Gipple</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-480</link>
		<dc:creator>Gipple</dc:creator>
		<pubDate>Wed, 25 Aug 2010 15:47:21 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-480</guid>
		<description>Solo a me quando tento di aprire un file rtf me lo converte &quot;in schifo&quot; e non in html? Io vedo solo strani codici.</description>
		<content:encoded><![CDATA[<p>Solo a me quando tento di aprire un file rtf me lo converte &#8220;in schifo&#8221; e non in html? Io vedo solo strani codici.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: chalda</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-65</link>
		<dc:creator>chalda</dc:creator>
		<pubDate>Fri, 22 Jan 2010 23:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-65</guid>
		<description>Per il problema dei spazi io proverei per prima cosa il primo codice che ti ho scritto nel commento precedente, magari sono solamente caratteri di fine riga che in rtf non vengono interpretati ma che chiaramente in formato testo si vedono :). Se non dovesse funzionare il primo codice che ti ho scritto nel commento precedente prova anche un
&lt;pre class=&quot;brush:php&quot;&gt;
$text = str_replace(array(&quot;\n&quot;,&quot;\r&quot;),&#039;&#039;, $text);
&lt;/pre&gt;
Per la seconda domanda... Si, è possibile, basta utilizzare il comando &lt;a href=&quot;http://php.net/manual/en/function.preg-replace-callback.php&quot; rel=&quot;nofollow&quot;&gt;preg_replace_callback&lt;/a&gt;, con cui si può specificare una funzione personale per la modifica:

&lt;pre class=&quot;brush:php&quot;&gt;
 $text = preg_replace_callback(
        &#039;‘/\\\fs([0-9]+)/&#039;,
        create_function(
            &#039;$matches&#039;,
            &#039;return &quot;&lt;span style=\&quot;font-size:&quot;.($matches[1]/2).&quot;px\&quot;;&gt;&quot;;&#039;
        ),
        $text
    );
&lt;/pre&gt;

Prova a guardarti la guida sul comando :)</description>
		<content:encoded><![CDATA[<p>Per il problema dei spazi io proverei per prima cosa il primo codice che ti ho scritto nel commento precedente, magari sono solamente caratteri di fine riga che in rtf non vengono interpretati ma che chiaramente in formato testo si vedono <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Se non dovesse funzionare il primo codice che ti ho scritto nel commento precedente prova anche un</p>
<pre class="brush:php">
$text = str_replace(array("\n","\r"),'', $text);
</pre>
<p>Per la seconda domanda&#8230; Si, è possibile, basta utilizzare il comando <a href="http://php.net/manual/en/function.preg-replace-callback.php" rel="nofollow">preg_replace_callback</a>, con cui si può specificare una funzione personale per la modifica:</p>
<pre class="brush:php">
 $text = preg_replace_callback(
        '‘/\\\fs([0-9]+)/',
        create_function(
            '$matches',
            'return "&lt;span style=\"font-size:".($matches[1]/2)."px\";&gt;";'
        ),
        $text
    );
</pre>
<p>Prova a guardarti la guida sul comando <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Marty</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-64</link>
		<dc:creator>Marty</dc:creator>
		<pubDate>Fri, 22 Jan 2010 20:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-64</guid>
		<description>Ops... essendo codice HTML l&#039;ha troncato... sostituisco con delle quadre tanto per farmi capire.

$text = preg_replace(&#039;/\\\fs([0-9]+)/&#039;, &#039;[span style=&quot;font-size:$1px&quot;;]&#039;, $text);

mi serve che $1 sia inserito come $1/2... ma come??
Come sotto non può funzionare ovvio... ma non so se si può fare.

$text = preg_replace(&#039;/\\\fs([0-9]+)/&#039;, &#039;[span style=&quot;font-size:($1px/2)&quot;;]&#039;, $text);</description>
		<content:encoded><![CDATA[<p>Ops&#8230; essendo codice HTML l&#8217;ha troncato&#8230; sostituisco con delle quadre tanto per farmi capire.</p>
<p>$text = preg_replace(&#8216;/\\\fs([0-9]+)/&#8217;, &#8216;[span style="font-size:$1px";]&#8216;, $text);</p>
<p>mi serve che $1 sia inserito come $1/2&#8230; ma come??<br />
Come sotto non può funzionare ovvio&#8230; ma non so se si può fare.</p>
<p>$text = preg_replace(&#8216;/\\\fs([0-9]+)/&#8217;, &#8216;[span style="font-size:($1px/2)";]&#8216;, $text);</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Marty</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-63</link>
		<dc:creator>Marty</dc:creator>
		<pubDate>Fri, 22 Jan 2010 20:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-63</guid>
		<description>Purtroppo credo caschiamo nel terzo caso.

Se apro il file rtf con notepad.... ovviamente lo visualizzo su RIGHE diverse... beh... quell&#039;esempio che ti ho riportato è uno di quelli.
Scrivendo a casaccio... il risultato è questo

................ ... .. . ... il mo
ndo fatato.....

Come vedi la parola mondo è troncata sulle due righe, diventa (analizzando) uno spazio nel testo. In effetti dovrei verificare se è un qualche carattere &quot;speciale&quot;... vedrò ;)

In ogni caso grazie mille.

Già che ci sono... (ti avviso che sono alle primissime armi con php, anche se faccio programmazione in assemler e C da una vita o due) sai per caso se è possibile &quot;modificare&quot; il subject in un preg_replace?
Come ti dicevo io avevo necessità di prendere un file RTF semplice semplice e tradurlo in HMTL.
Non mi serve una gran cosa perché massimo ho Bold e Corsivo da riconoscere, più qualche cambio dimensione del carattere... e proprio qui è il problema.

$text = preg_replace(&#039;/\\\fs([0-9]+)/&#039;, &#039;&#039;, $text);

Questa cosa come vedi riconosce una sequenza specifica dell&#039;rtf che è \fs seguita da due numeri che identificano la dimensione del carattere.
$1 è il valore numerico definito nel pattern... fin qui tutto ok.
Solo che dovrei dividerlo per due... è possibile farlo DIRETTAMENTE nel preg_replace? Una cosa tipo (osceno lo so... è per farmi capire)

$text = preg_replace(&#039;/\\\fs([0-9]+)/&#039;, &#039;&#039;, $text);

Ovvio che come sopra NON funziona ;) sai se si può fare????

Saluti.</description>
		<content:encoded><![CDATA[<p>Purtroppo credo caschiamo nel terzo caso.</p>
<p>Se apro il file rtf con notepad&#8230;. ovviamente lo visualizzo su RIGHE diverse&#8230; beh&#8230; quell&#8217;esempio che ti ho riportato è uno di quelli.<br />
Scrivendo a casaccio&#8230; il risultato è questo</p>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;. &#8230; .. . &#8230; il mo<br />
ndo fatato&#8230;..</p>
<p>Come vedi la parola mondo è troncata sulle due righe, diventa (analizzando) uno spazio nel testo. In effetti dovrei verificare se è un qualche carattere &#8220;speciale&#8221;&#8230; vedrò <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>In ogni caso grazie mille.</p>
<p>Già che ci sono&#8230; (ti avviso che sono alle primissime armi con php, anche se faccio programmazione in assemler e C da una vita o due) sai per caso se è possibile &#8220;modificare&#8221; il subject in un preg_replace?<br />
Come ti dicevo io avevo necessità di prendere un file RTF semplice semplice e tradurlo in HMTL.<br />
Non mi serve una gran cosa perché massimo ho Bold e Corsivo da riconoscere, più qualche cambio dimensione del carattere&#8230; e proprio qui è il problema.</p>
<p>$text = preg_replace(&#8216;/\\\fs([0-9]+)/&#8217;, &#8221;, $text);</p>
<p>Questa cosa come vedi riconosce una sequenza specifica dell&#8217;rtf che è \fs seguita da due numeri che identificano la dimensione del carattere.<br />
$1 è il valore numerico definito nel pattern&#8230; fin qui tutto ok.<br />
Solo che dovrei dividerlo per due&#8230; è possibile farlo DIRETTAMENTE nel preg_replace? Una cosa tipo (osceno lo so&#8230; è per farmi capire)</p>
<p>$text = preg_replace(&#8216;/\\\fs([0-9]+)/&#8217;, &#8221;, $text);</p>
<p>Ovvio che come sopra NON funziona <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  sai se si può fare????</p>
<p>Saluti.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: chalda</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-62</link>
		<dc:creator>chalda</dc:creator>
		<pubDate>Fri, 22 Jan 2010 18:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-62</guid>
		<description>Ciao Marty, lieto di esserti stato utile :-)
Non ho capito benissimo la tua domanda quindi rispondo con 3 diverse soluzioni :D

Se fossero solamente spazi bianchi e caratteri di fine riga potresti usare una cosa del tipo:
&lt;pre class=&quot;brush:php&quot;&gt;
   $text = preg_replace(&#039;/\s+/ms&#039;, &#039; &#039;, $text);
&lt;/pre&gt;

Se invece il problema sono le parentesi grafe ( tipo &quot;indossa}{ re}&quot; ) il problema è più complicato, ma penso si possa risolvere eliminando le parentesi graffe (tanto difficilmente sono presenti in un testo)
&lt;pre class=&quot;brush:php&quot;&gt;
   $text = preg_replace(&#039;/([}{]+ )/ms&#039;, &#039;&#039;, $text);
&lt;/pre&gt;

Se invece gli spazi bianchi sono direttamente nel testo e non sono racchiusi da segnaposto, io controllerei per prima cosa se ci sono anche aprendo il file rtf; 
se non ci sono controllerei se effettivamente sono spazi (magari sono caratteri vuoti speciali, tipo il 255 nella tabella ASCII); 
Se invece ci sono anche aprendo il file con programmi tipo wordpad allora il problema diventa grande quanto la lunghezza del file: per file piccoli sostituzione a mano, per file molto grandi ricerca incrociata con un file dizionario :-P

Spero di esserti stato utile in almeno uno dei 3 casi!
</description>
		<content:encoded><![CDATA[<p>Ciao Marty, lieto di esserti stato utile <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Non ho capito benissimo la tua domanda quindi rispondo con 3 diverse soluzioni <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Se fossero solamente spazi bianchi e caratteri di fine riga potresti usare una cosa del tipo:</p>
<pre class="brush:php">
   $text = preg_replace('/\s+/ms', ' ', $text);
</pre>
<p>Se invece il problema sono le parentesi grafe ( tipo &#8220;indossa}{ re}&#8221; ) il problema è più complicato, ma penso si possa risolvere eliminando le parentesi graffe (tanto difficilmente sono presenti in un testo)</p>
<pre class="brush:php">
   $text = preg_replace('/([}{]+ )/ms', '', $text);
</pre>
<p>Se invece gli spazi bianchi sono direttamente nel testo e non sono racchiusi da segnaposto, io controllerei per prima cosa se ci sono anche aprendo il file rtf;<br />
se non ci sono controllerei se effettivamente sono spazi (magari sono caratteri vuoti speciali, tipo il 255 nella tabella ASCII);<br />
Se invece ci sono anche aprendo il file con programmi tipo wordpad allora il problema diventa grande quanto la lunghezza del file: per file piccoli sostituzione a mano, per file molto grandi ricerca incrociata con un file dizionario <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>Spero di esserti stato utile in almeno uno dei 3 casi!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Marty</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-61</link>
		<dc:creator>Marty</dc:creator>
		<pubDate>Fri, 22 Jan 2010 12:01:18 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-61</guid>
		<description>Splendida... mi ha dato un ottimo spunto per una cosa che serviva a me.. una conversione rapida (senza miliardi di file da includere) in html.. e mi sta riuscendo...
Solo che (non so se è successo pure a te) nel file RTF convertito (anche in formato txt) restano degli spazi... ho provato ad aprire il file originale con notepad ed anche lì ci sono.
Hai qualche idea di come &quot;eliminarli&quot;? sembrano essere a &quot;fine riga&quot; nel notepad... ma trattandosi di un file RTF... di fatto troncano una parola a metà, ed è un peccato perché lo fa anche nella versione txt.

Mi spiego meglio... facendo fare solo &quot;alcuni&quot; dei passaggi al tuo script... gli spazi extra non arrivano da qui
indossa}{ re }

ma sono proprio già nel testo caricato... 

mo ndo fatato

se hai un&#039;idea....</description>
		<content:encoded><![CDATA[<p>Splendida&#8230; mi ha dato un ottimo spunto per una cosa che serviva a me.. una conversione rapida (senza miliardi di file da includere) in html.. e mi sta riuscendo&#8230;<br />
Solo che (non so se è successo pure a te) nel file RTF convertito (anche in formato txt) restano degli spazi&#8230; ho provato ad aprire il file originale con notepad ed anche lì ci sono.<br />
Hai qualche idea di come &#8220;eliminarli&#8221;? sembrano essere a &#8220;fine riga&#8221; nel notepad&#8230; ma trattandosi di un file RTF&#8230; di fatto troncano una parola a metà, ed è un peccato perché lo fa anche nella versione txt.</p>
<p>Mi spiego meglio&#8230; facendo fare solo &#8220;alcuni&#8221; dei passaggi al tuo script&#8230; gli spazi extra non arrivano da qui<br />
indossa}{ re }</p>
<p>ma sono proprio già nel testo caricato&#8230; </p>
<p>mo ndo fatato</p>
<p>se hai un&#8217;idea&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: chalda</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-17</link>
		<dc:creator>chalda</dc:creator>
		<pubDate>Tue, 22 Dec 2009 11:37:22 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-17</guid>
		<description>Ho aggiornato la funzione con preg_match,
Ero a conoscenza del fatto che ereg fosse deprecato, ma la forza dell&#039;abitudine è grande :)
Grazie della segnalazione!</description>
		<content:encoded><![CDATA[<p>Ho aggiornato la funzione con preg_match,<br />
Ero a conoscenza del fatto che ereg fosse deprecato, ma la forza dell&#8217;abitudine è grande <img src='http://blog.chalda.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Grazie della segnalazione!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Di: Aaron</title>
		<link>http://blog.chalda.it/convertire-un-documento-rtf-in-testo-in-php-10.html/comment-page-1#comment-16</link>
		<dc:creator>Aaron</dc:creator>
		<pubDate>Tue, 22 Dec 2009 10:46:03 +0000</pubDate>
		<guid isPermaLink="false">http://chalda.it/blog/?p=10#comment-16</guid>
		<description>Ti avviso che ereg dal php 5 è nella lista delle funzioni deprecate, quindi è preferibile utilizzare preg (è anche più veloce).
Comunque grazie della funzione, mi serviva proprio!</description>
		<content:encoded><![CDATA[<p>Ti avviso che ereg dal php 5 è nella lista delle funzioni deprecate, quindi è preferibile utilizzare preg (è anche più veloce).<br />
Comunque grazie della funzione, mi serviva proprio!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

