Ciao ragazzi,
da poco sul mio server online ho un problema alquanto curioso, inutile stare qui a spiegarvi il problema nel dettaglio in quanto sarebbe un attimo OT, vi basti sapere che ho fatto un po' di debug e ho trovato un errore che mi lascia spiazzato…
Per prima cosa qualche informazione, il codice php gira su un server FreeBSD, sul mio computer ho una macchina virtuale con la stessa versione di FreeBSD e i vari pacchetti installati, è un installazione pulita l’ho fatta per poi usarla come macchina di test, in aggiunta ho appena installato un’altra virtual machine con l’ultima Debian stable.
Il problema l’ho racchiuso nel seguente codice PHP
<?php
$img_url ='
http://192.168.1.55/attachment.php?attachmentid=36&stc=1';
$fullurl ='<img src="
http://192.168.1.55/attachment.php?attachmentid=36&stc=1" attachmentid="36" alt="" id="vbattach_36" class="previewthumb">';
if (preg_match('#attachment.php\?attachmentid=(\d+)#si', $img_url, $matches) AND preg_match('#class=(\'|"|)([a-z0-9_-\s]+)?\s*previewthumb\s*([a-z0-9_-\s]+)?(\\1)#si', $fullurl))
{
echo "it's ok";
}
?>
Quando lo eseguo (da web o da cli) ho il seguente errore:
Warning: preg_match(): Compilation failed: invalid range in character class at offset 23 in x.php on line 5
Ma questo SOLO se lo eseguo dai due server FreeBSD, mentre se lo eseguo dal server Debian funziona correttamente!
I server hanno le seguenti versioni di PHP installate
FreeBSD server online: 5.3.28
FreeBSD server di test: 5.3.28 e poi aggiornato alla 5.4.25
Debian server: 5.4.4-14+deb7u8
Cosa ne pensate?
—
RedFoxy Darrest
http://www.redfoxy.it