Troncare una stringa dopo un certo numero di caratteri con php
<?
function cutText($string, $length) {
while ($string{$length} != " ") {
$length–;
}
return substr($string, 0, $length);
}
?>
Catturare le news del sito rai.it con php
<base href="http://www.rai.it/">
<script>
window.onload=intercetta;
function intercetta() {
for (var i=0; i<document.links.length; i++)
document.links[i].target="_blank";
}
</script>
<?
$news=fopen("http://www.rai.it/notizietelevideo/0,,,00.html","r");
$i=0;
while (!feof($news)) {
$buffer = fgets($news, 4096);
if($i>70 && $i<116){
$buffer=str_replace("<h4 class=\"StrilloTelevideo\">","",$buffer);
$buffer=str_replace("</h4>","<br>",$buffer);
echo "$buffer"; //riga letta
}
$i++;
}
fclose ($news); #chiude il file
?>
Trasformare un testo da maiuscolo a minuscolo con php
Creare RTF da Php
Il formato RTF
RTF (acronimo di RICH TEXT FORMAT) è un formato per documenti multipiattaforma, sviluppato da Microsoft nel lontano 1987. La maggior parte degli editor di testo e dei word processor disponibili per Microsoft Windows, Mac OS e Linux sono in grado di leggere e scrivere documenti RTF.
RTF permette di mantenere la formattazione dei caratteri, dei paragrafi e tutte le immagini presenti in un documento, impostare informazioni di impaginazione molto precise (la dimensione e l’orientamento del foglio per esempio) senza includere nessuna macro. Inoltre le specifiche possono essere consultate liberamente, e Microsoft ad ogni nuova versione, rilascia l’ opportuna documentazione. Dalla versione 1.0 del 1987 siamo giunti alla 1.9 del Febbraio 2007.
La soluzione: PhpRtf
PhpRtf è una libreria php free in grado di generare file RTF in modo dinamico. Il suo utilizzo è molto semplice, e ciò è dovuto anche al fatto che il codice è ben strutturato.
Di seguito sono elencate alcune delle funzionalità che la libreria mette a disposizione:
- gestione e formattazione delle sezioni di un documento (margini, formato pagina, bordi, ecc..)
- formattazione di header e footer (possiblità di inserire intestazione, contatore pagina automatico, la data in diversi formati, ecc..)
- gestione e formattazione del paragrafo (controllo del background, bordi, allineamento, indentazione, ecc.)
- gestione e formattazione del font (dimensione, colore, grassetto, corsivo, ecc.)
- possibilità di aggiungere al documento immagini di tipo JPG e PNG
- gestione delle tabelle: impostazione dei bordi e delle misure, del background e allineamento delle celle
- possibilità di scrivere in RTF direttamente all’ interno del documento
- possibilità di utilizzare gli html style tags
- supporto UTF-8
Sul sito ufficiale del progetto, www.phprtf.com, è possibile trovare tutta la documentazione e il dettaglio delle funzioni disponibi nella libreria.
Analizziamo il classico esempio: HelloWord !
| <?php require_once("../rtf/Rtf.php"); $rtf = new Rtf(); $sect = &$rtf->addSection(); $sect->writeText(‘<i>Hello <b>World</b></i>.’, new Font(12), new ParFormat(‘center’)); $rtf->sendRtf(‘Hello World’); ?> |
Innanzitutto bisogna includere il sorgente della libreria, Rtf.php, e istanziare l’oggetto Rtf. A questo punto si aggiunge una pagina al documento attraverso il metodo addSection(), e si scrive al suo interno utilizzando writeText. Come è posisibile vedere, per scrivere sul file bisogna definire 2 attributi: il font, attraverso il quale applichiamo una formattazione di stile al carattere, e la formattazione del paragrafo che contiene il testo. In questo caso il paragrafo dispone il testo con allineamento centrato. Per salvare il documento, utilizziamo il metodo sendRtf(‘HelloWord’), che ci permette di scaricare il file col nome HelloWord.rtf
Il primo articolo riguardo il formato RTF (Creare RTF da Php - Introduzione) ci ha insegnato le basi, ora passiamo ad un esempio un po’ piu complesso:
realizziamo una griglia dati, introducendo anche le funzioni per impostare gli attributi del foglio.
In questo esempio generiamo una tabella di 10 righe e 3 colonne al centro del documento. Ogni riga ha altezza 2cm e larghezza 5cm.
Il codice è il seguente:
| require_once("../rtf/Rtf.php");
$rtf = new Rtf();
//aggiungo la pagina, imposto formato A4 pagina e margini $sect = &$rtf->addSection(); $sect->setPaperWidth(21); $sect->setPaperHeight(29.7); $marginTop = 1; $marginBottom = 1; $marginLeft = 3; $marginRight = 3; $sect->setMargins($marginLeft, $marginTop, $marginRight, $marginBottom); |
Dopo aver istanziato l’ oggetto Rtf e creato la pagina, definiamo il formato A4 e impostiamo i margini della pagina attraverso il medoto setMargins.
| $columns = 4; $rows = 10; $cell_h = 2; $cell_w = 5; //creo la tabella con 10 righe e 3 colonne $table = &$sect->addTable(); $table->addRows($rows, $cell_h); $table->addColumn($cell_w); $table->addColumn($cell_w); $table->addColumn($cell_w); |
Per creare la tabella abbiamo utlizzato il metodo addTable(). La definizione delle righe è molto semplice e si possono utilizzare 2 metodi: il primo è addRow(), che riceve in ingresso l’ altezza e appende una riga alla tabella. Il secondo che abbiamo utlizzato noi è una miglioria del metodo precedente, in quanto addRows permette in un colpo solo di inserire un preciso numero di righe, ma con la STESSA altezza. Per definire le colonne invece, si utilizza il metodo addColumn() che riceve in ingresso la larghezza della colonna.
Facciamo attenzione ad inserire i giusti centimetri altrimenti si esce fuori dal foglio.
| //stile per il contenuto interno della cella $innerPar = new ParFormat(‘left’); $innerPar->setIndentLeft(0.64); $innerPar->setIndentRight(0.64); $innerFont = new Font(10, ‘Times New Roman’); //riempio la tabella for($row_index = 1; $row_index <= $rows; $row_index++){ for($col_index = 1; $col_index <= $columns; $col_index++){ $text = ‘ROW:’.$row_index.‘COL:’.$col_index; $table->writeToCell($row_index, $col_index, $text, $innerFont, $innerPar); unset($text); }//end rows for }//end cols for //outputting rtf … $rtf->sendRtf(‘test’); |
A questo punto, con un doppio ciclo (quello esterno scandisce le righe, il più interno le colonne) andiamo a posizionarci nelle celle, e con writeToCell settiamo il contenuta della cella corrente. Anche qui dobbiamo definire sia font che stile del paragrafo.
Questi sono 2 esempi molto semplici che mettono in evidenza la semplicità e versatilità della libreria … ma c’è molto altro! Alla pagina www.phprtf.com/index.php/samples/ è presente una modesta carrellata di esempi, dove vengono esposte la maggior parte delle funzionalità. Enjoy!
Via: http://www.codicefacile.it
Creare un modulo di contatti con php
In questo articolo vedremo come creare un modulo contatti in php che invia i dati via email. Le informazioni che vogliamo memorizzare sono: nome, email e messaggio.
Creaimo il modulo:
<form method="post" action="invia.php"><INPUT NAME="op" TYPE="hidden" VALUE="send">
<table>
<tr>
<td><p>Nome:</p></td>
<td>
<input name="name" type="text" size="30" maxlength="150">
</td>
</tr>
<tr>
<td><p>E-mail:</p></td>
<td>
<input name="email" type="text" size="30" maxlength="150">
</td>
</tr>
<tr>
<td valign="top"><p>Messaggio:</p></td>
<td><textarea name="message" cols="40" rows="6"></textarea></td>
</tr>
<tr><td></td> <td><input name="submit" type="submit" value="Invia"></td></tr>
</table>
</form>
Quello che adesso serve è il file invia.php che recupera i dati e li invia per email:
<?php
if (isset($_POST["op"]) && ($_POST["op"]=="send")) {
/******** START OF CONFIG SECTION *******/
$sendto = "";
$subject = "Website Contact Enquiry";
// Select if you want to check form for standard spam text
$SpamCheck = "Y"; // Y or N
$SpamReplaceText = "*content removed*";
// Error message prited if spam form attack found
$SpamErrorMessage = "<p align=\"center\"><font color=\"red\">Malicious code content detected.
</font><br><b>Your IP Number of <b>".getenv("REMOTE_ADDR")."</b> has been logged.</b></p>";
/******** END OF CONFIG SECTION *******/
$name = $HTTP_POST_VARS['name'];
$email = $HTTP_POST_VARS['email'];
$message = $HTTP_POST_VARS['message'];
$headers = "From: $email\n";
$headers . "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 7bit\n"
. "Content-type: text/html; charset = \"iso-8859-1\";\n\n";
if ($SpamCheck == "Y") {
// Check for Website URL’s in the form input boxes as if we block website URLs from the form,
// then this will stop the spammers wastignt ime sending emails
if (preg_match("/http/i", "$name")) {echo "$SpamErrorMessage"; exit();}
if (preg_match("/http/i", "$email")) {echo "$SpamErrorMessage"; exit();}
if (preg_match("/http/i", "$message")) {echo "$SpamErrorMessage"; exit();}
// Patterm match search to strip out the invalid charcaters, this prevents the mail injection spammer
$pattern = ‘/(;|\||`|>|<|&|^|"|’."\n|\r|’".’|{|}|[|]|\)|\()/i’; // build the pattern match string
$name = preg_replace($pattern, "", $name);
$email = preg_replace($pattern, "", $email);
$message = preg_replace($pattern, "", $message);
// Check for the injected headers from the spammer attempt
// This will replace the injection attempt text with the string you have set in the above config section
$find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i");
$email = preg_replace($find, "$SpamReplaceText", $email);
$name = preg_replace($find, "$SpamReplaceText", $name);
$message = preg_replace($find, "$SpamReplaceText", $message);
// Check to see if the fields contain any content we want to ban
if(stristr($name, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();}
if(stristr($message, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();}
// Do a check on the send email and subject text
if(stristr($sendto, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();}
if(stristr($subject, $SpamReplaceText) !== FALSE) {echo "$SpamErrorMessage"; exit();}
}
// Build the email body text
$emailcontent = "
—————————————————————————–
WEBSITE CONTACT ENQUIRY
—————————————————————————–
Name: $name
Email: $email
Message: $message
_______________________________________
End of Email
";
// Check the email address enmtered matches the standard email address format
if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $email)) {
echo "<p>It appears you entered an invalid email address</p><p><a href=’javascript: history.go(-1)’>Click here to go back</a>.</p>";
}
elseif (!trim($name)) {
echo "<p>Please go back and enter a Name</p><p><a href=’javascript: history.go(-1)’>Click here to go back</a>.</p>";
}
elseif (!trim($message)) {
echo "<p>Please go back and type a Message</p><p><a href=’javascript: history.go(-1)’>Click here to go back</a>.</p>";
}
elseif (!trim($email)) {
echo "<p>Please go back and enter an Email</p><p><a href=’javascript: history.go(-1)’>Click here to go back</a>.</p>";
}
// Sends out the email or will output the error message
elseif (mail($sendto, $subject, $emailcontent, $headers)) {
echo "<br><br><p><b>Thank You $name</b></p><p>We will be in touch as soon as possible.</p>";
}
}
else {
?>
<p align="center">Uno o piu campi vuoti</p>
<?php } ?>
Calcolare il numero di giorni tra due date con php
Questo ottimo tutorial ci fa vedere come calcolare il numero di giorni tra due date con php. Basta inserire le date nel formato gg/mm/aaaa e lui fà il resto.
Articolo completo: http://snippets.dzone.com/posts/show/807














































