Avendo la necessità di eseguire PHP via command line (per poter eseguire degli script php) su una macchina batocera, ci si accorge che il problema è più complesso del previsto: batocera nel suo repository di pacchetti non ha la possibilità di installare PHP, e anche facendo delle ricerche non ho trovato nulla a riguardo.
Dopo qualche prova sono riuscito tramite flatpak (supportato nativamente da batocera) e l'ambiente org.freedesktop.Sdk.
Il modulo DOM di PHP contiene le funzionalità per manipolare gli oggetti dom: la classe radice è "DOMDocument", al quale può essere dato in pasto un testo in formato HTML o XML da decodificare e quindi elaborare come preferiamo.
Questa classe ha purtroppo dei noti problemi con il supporto a testi UTF-8 (e quando mai...).
Provate ad esempio questo codice, che in teoria non dovrebbe fare nulla (decodifica la stringa passata e la ricodifica senza farci nulla).
Se apache+php da questo errore quando cerca di connettersi a un host, il problema potrebbe essere semplicemente che il servizio apache, avviato prima della connessione di rete completata, non ha aggiornati i dati da /etc/resolv.conf. Nel caso la soluzione è riavvare apache, avendo cura di fare stop e start del servizio separatamente, in sequenza, e non il semplice restart (con il restart i dati del dns non vengono riletti).
Problema: in uno script PHP cerchiamo di eseguire il comando mysql: "LOAD DATA LOCAL INFILE ..."
(Quindi in genere cerchiamo di importare un file csv in una tabella mysql dal file system locale).
Lo script si blocca con un errore:
The used command is not allowed with this MySQL version
Mentre se proviamo a fare lo stesso comando direttamente da una shell Mysql funziona tutto (se non è così il problema è da cercarsi nella configurazione generale mysql).