ho bisogno di aiuto per riuscire a sostituire dei caratteri all'interno di una stringa.
spiego velocemente il problema perché è un caso un po' particolare:
tutto è in utf-8, il file PHP così come il file XML
Codice PHP:
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding("UTF-8");
ho un file XML così strutturato:
codice:
<dizionario lettera="a">
<parola id="1">
<lemma>abaca</lemma>
<sillabazione ordine="" accentazione="à-ba-ca">à-ba-ca</sillabazione>
</parola>
<parola id="2">
<lemma>abacà</lemma>
<sillabazione ordine="" accentazione="a-ba-cà">a-ba-cà</sillabazione>
</parola>
</dizionario>
al quale accedo tramite xpath:
Codice PHP:
$path = "//sillabazione/@accentazione";
$sillTmp = $xpath->evaluate($path, $val);
$accenti = array();
foreach($sillTmp as $val){
array_push($accenti, $val->nodeValue);
}
fin qui tutto bene, ma quando cerco di sostituire le lettere accentate né il preg_replace né lo str_replace funzionano.
esempio:
Codice PHP:
$sillabazione = str_replace('à', "à", $accenti[0]);
pensavo fosse un problema di codifica ma ho provato con tutte le possibili opzioni (&agrave; - &#224; - &#xE0;) e non è servito a nulla, a questo punto mi sorge il dubbio che il problema sia dovuto al fatto che i dati li recupero via xpath...
mah!
qualcuno può aiutarmi?