L’archivio del tag «php»

Inerario §24

Il nuovo paragrafo di Inerario (§ 24) è dedicato ai vari modi di visualizzare la lista dei file e cataloghi contenuti in una directory con un semplice script in PHP.
Il paragrafo è stato pensato per le persone pigre (come, per esempio, il sottoscritto) che non hanno la voglia di scrivere e aggiornare manualmente delle liste di ogni genere (forse dovendo pure linkare le singole voci).
http://www.eugigufo.net/it/inerario/paragrafo24/


I bug celebrali moderni

La conferenza europea dei programmatori in PHP – la quale avrebbe dovuto svolgersi dal 4 al 6 ottobre a Dresda – è stata annullata per un motivo interessantissimo. Gli organizzatori sostengono di non avere trovato alcun relatore non bianco non uomo. E questa sarebbe una brutta manifestazione del razzismo.
Allo stesso tempo gli organizzatori scrivono che avrebbero ammesso tutte le persone intenzionate a tenere una propria relazione, ma solamente gli uomini bianche si sono registrati come candidati. Alla scoperta del fatto, alcuni dei relatori già approvati hanno disdetto la propria partecipazione (non chiedetemi perché: certe idee mi sembrano veramente incomprensibili). La conferenza si è dunque disintegrata prima di iniziare.
Ecco, a questo punto io avrei due grandi domande.
Prima di tutto: perché gli organizzatori non hanno cercato una afrotedesca disabile originaria della America Latina, possibilmente anche lesbica e femminista? Avrebbero potuto darle un foglietto con il testo di una relazione qualsiasi e un po’ di soldi. E la conferenza sarebbe stata salvata.
La seconda domanda: certi personaggi non capiscono che la cancellazione di una conferenza a causa della presenza di soli bianchi è già una manifestazione di razzismo? Preciso che per me il razzismo non è una graduatoria delle persone fatta in base alla razza, ma il solo semplice fatto della distinzione delle razze (ma è un argomento complesso, prima o poi ne parlerò in un testo a parte).
Trovo veramente strano il fatto che quei programmatori siano così poveri delle capacità logiche necessarie per la soluzione di un problema banalissimo.

P.S.: beh, tanto le conferenze a me utili si tengono tutti i giorni sui forum specializzati.


Nel paragrafo precedente avevo scritto del reindirizzamento (redirect 301) attuabile attraverso i file di configurazione del server (.htaccess e web.config). Quel metodo, però, potrebbe essere inadatto alle caratteristiche tecniche del vostro hosting (per esempio, potreste non avere i diritti per la modifica di quei file) o alle vostre esigenze/preferenze particolari.
Ebbene, il redirect può essere realizzato – a vostra scelta – anche tramite uno semplice script in HTML, PHP, JavaScript o JSP (Java). Prima di vederli tutti, avviso che il metodo in questione richiede l’intervento diretto sul codice delle singole pagine, quindi nel caso di una grande quantità di queste ultime potrebbe richiedere un lungo lavoro monotono.

1. Il redirect con il HTML
Il codice deve essere inserito tra i tag <head> e </head> della pagina dalla quale deve partire il reindirizzamento. Al posto dello 0 (zero) potete inserire qualsiasi altro numero intero: indica la quantità dei secondi dopo la quale il visitatore verrà automaticamente reindirizzato al nuovo URL da voi inserito.
Non dimenticatevi di inserire l’indirizzo del sito e/o della pagina al quale volete reindirizzare il visitatore!

<meta http-equiv="refresh" content="0; url=http://nuovosito.it">

Nel caso del valore 0 (zero secondi) il reindirizzamento deve essere immediato, il che ha dei suoi vantaggi. Mentre la scomodità della immediatezza – non a tutti evidente – consiste nel fatto che dopo l’avvenuto reindirizzamento il visitatore potrebbe per qualche suo motivo decidere di cliccare sul buttone «indietro» del browser. In questo ultimo caso finirà sulla pagina dalla quale era partito il reindirizzamento e verrà dunque nuovamente reindirizzato alla pagina che voleva lasciare!

2. Il redirect con il PHP
Anche questo codice – se scelto da voi – va inserito nel codice della pagina dalla quale deve partire il reindirizzamento.
L’unica cosa da modificare è l’indirizzo della destinazione del reindirizzamento.

<?php
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: http://nuovosito.it/');
?>

Questo secondo script funzionerà perfettamente se le pagine del vostro sito hanno l’estensione .php Esisterebbe anche un modo di inserire il codice PHP nelle pagine HTML, ma questo non è l’argomento del presente paragrafo. Inoltre, c’è da sottolineare che le soluzioni perverse (intendo il mescolamento dei due linguaggi) fanno divertire un sacco lo sviluppatore, ma raramente hanno un reale senso pratico.

3. Il redirect con il JavaScript
Il codice va inserito tra i tag <head> e </head> della pagina dalla quale deve partire il reindirizzamento.
L’unica cosa da modificare è l’indirizzo della destinazione del reindirizzamento.

<script type="text/javascript">
  window.location.replace("http://nuovosito.it");
</script>

Ma è importante ricordare di un grosso difetto di questo terzo script: il visitatore potrebbe avere disabilitato l’esecuzione del JavaScript nel proprio browser. In tal caso, ovviamente, il reindirizzamento tramite il nostro script in JS non avverrà.

4. Il redirect con il JSP (Java)
Anche in questo caso non va dimenticato l’inserimento dell’indirizzo di destinazione.

<%
response.setStatus(301);
response.setHeader( "Location", "http://nuovosito.it/" );
response.setHeader( "Connection", "close" );
%>

Ecco, è tutto qui. Semplicissimo, vero?


Nel presente articolo vi spiego come si fa a inserire i banner pubblicitari tra un post e l’altro pubblicati sulla piattaforma WordPress. In realtà è molto semplice.
Supponiamo di voler visualizzare la pubblicità sulla pagina index.php (anche se lo stesso metodo è utilizzabile su qualsiasi pagina del vostro tema destinata alla visualizzazione di più di un post – per esempio le pagine di archivio).
Il metodo № 1. Solo un banner per pagina
Supponiamo ora di non voler annoiare troppo i visitatori del nostro sito con una quantità esagerata di banner. Vogliamo dunque averne solo uno per pagina.
Prima di tutto, cerchiamo nel codice della pagina l’inizio del ciclo dei post. Può essere scritto in questo modo:

<? if (have_posts()) : ?>
<? while (have_posts()) : the_post(); ?>

Oppure tutto su una riga: non importa. In ogni caso, prima di tale ciclo inseriamo questo codice:

<?php $counter = 0; ?>

Ora andiamo verso la fine del codice della pagina sulla quale stiamo lavorando e cerchiamo questa riga:

<?php endwhile; ?>

Prima di tale riga inseriamo queste cinque righe di codice:

<?php
$postcount++;
if($postcount==1){?>
<div>// il codice della pubblicita</div>
<?php } ?>

Guardate alla riga 3 del codice appena riportato. Il numero «1» è il numero periodico del post dopo il quale verrà visualizzato il banner pubblicitario. Tale numero può essere cambiato a vostro piacimento (ma, ovviamente, non può essere più alto della quantità massima dei post per pagina che avete indicato nelle impostazioni di WordPress).
Alla riga 4 tra i tag <div> e </div> va inserito il codice del banner pubblicitario.
Abbiamo già fatto tutto!
Il metodo № 2. Più di un banner per pagina
Supponiamo di essere disposti a inserire più di un banner pubblicitario tra gli articoli della stessa pagina.
L’inizio è analogo a quanto scritto per il metodo № 1. Quindi cerchiamo nel codice della pagina queste due righe (oppure riga unica):

<? if (have_posts()) : ?>
<? while (have_posts()) : the_post(); ?>

Prima di esse inseriamo questa:

<?php $counter = 0; ?>

Invece dopo sempre quelle due righe inseriamo questa:

<?php $counter = $counter + 1;?>

Per rassicurarvi riporto l’intero blocco del codice che dovrebbe esservi venuto:

<?php $counter = 0; ?>
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<?php $counter = $counter + 1;?>

Ora andiamo verso la fine del codice della pagina sulla quale stiamo lavorando e cerchiamo questa riga:

<?php endwhile; ?>

Prima di essa va inserito questo codice di sei righe:

<?php if(1 == $counter) : { ?>
// il codice della prima pubblicita
<?php } endif; ?>
 
<?php if(3 == $counter) : { ?>
// il codice della seconda pubblicita
<?php } endif; ?>

I numeri 1 e 3 che vedete alle righe 1 e 5 indicano i numeri periodici dei post dopo i quali verranno visualizzati i banner pubblicitari (quindi dopo il primo e dopo il terzo post della pagina). Ovviamente potete cambiare quei numeri a vostro piacimento.
Volete aumentare la quantità dei banner ancora di uno? Nessun problema! Dopo l’ultimo dei codici che vi ho indicato inserite questo:

<?php if(4 == $counter) : { ?>
// il codice della terza pubblicita
<?php } endif; ?>

Potete ripetere quest’ultima una infinità di volte. Ma non esagerate: troppa pubblicità fa scappare i visitatori.
Anzi, i visitatori disturbati dalla troppa pubblicità potrebbero anche decidere di non visualizzarla più sul vostro sito e voi, di conseguenza, non guadagnate nulla.


Tutti sanno che aspetto ha l’indicazione del copyright su un sito web. Sul mio sito, per esempio, è fatta in questo modo:

Il 2000 è l’anno di fondazione, mentre il 2024 è l’anno corrente. Per l’anno di fondazione non sorge alcun problema: lo inseriamo a mano una volta e per sempre. Come invece fare in modo che l’anno corrente del copyright si aggiorni da solo la notte del capodanno? Oggi vi fornisco due risposte a questa domanda.
La risposta № 1. Il copyright in PHP.
Il codice da inserire al posto dell’anno corrente è semplicissimo:

<?php echo date('Y'); ?>

La lettera Y richiama l’intero numero dell’anno corrente. Se volete indicare solo le ultime due cifre (per esempio 24 al posto di 2024), sostituite la Y (maiuscola) con la y (minuscola). E non dimenticate l’indirizzo del vostro sito nel link! Infatti, molte persone si aspettano che il testo del copyright sia linkato e porti alla prima pagina del sito. Deludere le aspettative dei visitatori non è sempre una buona cosa.
Ah, ovviamente il codice PHP è da inserire proprio in quel punto della pagina dove intendete visualizzare la scritta del copyright.
La risposta № 2. Il copyright in JavaScript.
Tale soluzione può avere senso se non avete il PHP installato sul server o, per qualche motivo, avete le pagine fatte in HTML semplice.
Ecco il codice che utilizzavo io fino a qualche anno fa sul proprio sito (funziona!):

today = new Date();
year = today.getFullYear();
newy = year + 1 ;
BigDay = new Date("Jan 1, "+newy)
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
if (daysLeft <= 15 && daysLeft >= 0)
{document.writeln('<b>&copy; <a href="http://eugigufo.net/" style="text-decoration: none; color: #FFFFFF;">Eugi Gufo</a><br>2000&#8211;'+newy+'</b><br>');}
if (daysLeft > 15)
{document.writeln('<b>&copy; <a href="http://eugigufo.net/" style="text-decoration: none; color: #FFFFFF;">Eugi Gufo</a><br>2000&#8211;'+year+'</b>');}

Il difetto del JavaScript è però notevole: esso prende la data dalle impostazioni del computer del visitatore. Di conseguenza, le impostazioni eventualmente sbagliate determineranno la visualizzazione dell’anno corrente sbagliato.
Ovviamente il codice JavaScript è da inserire proprio in quel punto della pagina dove intendete visualizzare la scritta del copyright.
In ogni caso, conviene sempre automatizzare tutto ciò che è automatizzabile. Si risparmiano il tempo e le forze, si riducono le possibilità delle eventuali dimenticanze. Un sito con l’anno del copyright non aggiornato potrebbe apparire abbandonato e quindi poco attuale (almeno agli occhi dei visitatori nuovi).


Il nuovo traslitteratore

Un breve riassunto del post di oggi:
Sul mio sito è ora pubblica una nuova versione del traslitteratore dei caratteri cirillici in quelli latini e viceversa. Se avete voglia e tempo, testatelo pure (comunicandomi poi gli eventuali malfunzionamenti o errori).

Il testo completo del post di oggi:
Un giorno di agosto il mio cervello fu fulminato da una strana idea: «devo assolutamente riscrivere in PHP il tralitteratore che tantissimi anni fa scrissi in JavaScript». Probabilmente, non tutti i miei lettori sanno cosa sia un traslitteratore. E allora lo spiego brevemente.

Il traslitteratore (o il trasliter) è, come potete ben immaginare, uno strumento per la traslitterazione, cioè per la conversione delle parole scritte con i caratteri dell’alfabeto X nelle stesse parole scritte con i caratteri dell’alfabeto Y. Lo strumento esegue dunque una traduzione non linguistica ma grafica: essa non va confusa nemmeno con la trascrizione (pensate a quella fonetica che si trova sui dizionari). Proprio per questo per la traslitterazione da un alfabeto all’altro esiste più di un insieme di regole. Ogni insieme di regole è elaborato da una organizzazione nazionale o internazionale per la soddisfazione delle necessità determinate (così, il cirillico russo può essere traslitterato secondo una delle 13 regole ufficialmente esistenti). Le informazioni più dettagliate e, in un certo senso, più scientifiche si possono reperire sulla letteratura specializzata o sulla Wikipedia (dipende quali fonti preferite). Il traslitteratore realizzato da me, in particolare, permette di traslitterare i testi dall’alfabeto cirillico a quello latino e viceversa.

I difetti della prima versione del mio traslitteratore (scritto nel lontanissimo 2001 in JavaScript) furono i seguenti:
– non funzionava su tutti i computer perché dipendeva troppo dalle impostazioni del browser;
– sapeva convertire l’alfabeto latino in quello cirillico ma non al contrario;
– non conosceva tantissimi caratteri latini particolari (per esempio, le vocali accentate);
– funzionava correttamente solo con i testi battuti secondo la trascrizione della pronuncia russa.

I pregi della nuova versione del mio traslitteratore (scritto nell’agisto del 2016 in PHP) sono i seguenti:
– funziona senza problemi in tutti i browser (perché è in PHP!);
– può traslitterare dall’alfabeto cirillico in quello latino e viceversa;
– riesce a elaborare più caratteri cirillici (per esempio, anche quelli ucraini);
– traslittera il cirillico seguendo il sistema scientifico (raccomandato dall’ONU e utilizzato nel mondo scientifico e bibliotecario).

Ho creato il traslitteratore in questione per la traslitterazione dei testi, titoli dei libri, nomi degli autori etc ma (attenzione!) non dei dati anagrafici da utilizzare sui documenti di identità (in questo ultimo caso vanno seguite delle regole di traslitterazione diverse – prima o poi aggiungo tale opzione alla mia fantastica creatura).

Intanto provate a testarlo e, nel caso di errori o malfunzionamenti fatemi pure sapere: solo così potrò perfezionarlo ancora!