non riesco ad eliminare dei caratteri in PHP - Excel

  • Creatore Discussione Creatore Discussione Stefi
  • Data di inizio Data di inizio

Stefi

Nuovo Utente
14 Mag 2013
18
0
0
Salve,
per prima cosa vi spiego la mia situazione:
devo prelevare dei dati da Excel, questi dati vanno a formare una tabella in MySql (uso PhpMyAdmin), per fare tutto ciò uso PHP Excel reader.
Mi funziona.
Solo che ho due problemi nell'inserire i campi della tabella.
il primo problema sta nel fatto che con PHP non riesco a rimuovere uno spazio, ovvero facendo il $campi[$i]=str_replace(" ","_", $campi[$i]); non mi riesce a trovare lo spazio e quindi ad eliminarlo. Quando vado a controllare se questo campo è già presente nella tabella mi da l'errore del duplicato, perchè MySql legge lo spazio di PHP, ma nella tabella lo spazio non c'è, perchè la prima volta che lo inserisco, Mysql mi elimina automaticamente questo spazio. Ho provato ad eliminare lo spazio anche con MySql usando Trim prima dell'inserimento, ma niente, ho provato ad utilizzare il Like ed il %, ma non funziona.

il mio secondo problema sta che con PHP non riesco ad eliminare la "à". Quando leggo i campi in Excel, devo eliminare gli accenti perchè altrimenti dopo mi esce un casino assurdo. Però non funziona.
Ho provato con :
PHP:
$campi[$i]=str_replace('Abilità','a', $campi[$i]);
$campi[$i]=str_replace(chr(195),'a', $campi[$i]);
$campi[$i]=str_replace('à','a', $campi[$i]);

Ma nessun risultato.


Grazie in anticipo e se avete bisogno di altre informazioni chiedetemi pure.
 
Ultima modifica di un moderatore:
cia
prova con questo schema
PHP:
<?php
$trova=array('à','è','é','ì','ò','ù');//+ tutti quelli che ti servono
$rimpiazza=array('a','e','e','i','o','u');//stesso ordine di quelli da sostiruire
//la seguente per non stare a trovare tutti i caratteri es &agrave; .....
//comunque verifica se ti serve
$trova=array_map('htmlspecialchars',$trova);
//eventualmente fai anche $campi=htmlspecialchars($campi);
$campi="allorà il té è ìn arrivò";
$campi=str_replace($trova,$rimpiazza, $campi);
echo $campi;
?>
output
allora il te e in arrivo
 
cia
prova con questo schema
PHP:
<?php
$trova=array('à','è','é','ì','ò','ù');//+ tutti quelli che ti servono
$rimpiazza=array('a','e','e','i','o','u');//stesso ordine di quelli da sostiruire
//la seguente per non stare a trovare tutti i caratteri es &agrave; .....
//comunque verifica se ti serve
$trova=array_map('htmlspecialchars',$trova);
//eventualmente fai anche $campi=htmlspecialchars($campi);
$campi="allorà il té è ìn arrivò";
$campi=str_replace($trova,$rimpiazza, $campi);
echo $campi;
?>
output
allora il te e in arrivo

Ho provato ad implementarlo ma non mi funziona. Non so se è per il fatto che prendo le stringhe in un file Excel, ma non mi elimina gli accenti
 
Per caso sai come creare il campo in PHP con la codifica utf8-general? Perchè io prendo i campi in Excel e creo la tabella, tutto in una pagina PHP. Non potrei mettere le mani nel database.

Ho trovato un modo e grazie mille a tutte e due per l'aiuto :)
 
ALTER TABLE nome_tabella DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
così metto la codifica corretta in MySql, e per la questione degli accenti funziona si e no, a volte mi vede l'accento e altre no. Questo è un problema che sto cercando di risolvere con il mio professore. Appena trovo una soluzione che funziona per bene la posto
 
ciao
non so se è una soluzione valida, ma io ho risolto così cercando di trasformare prima
PHP:
<?php
//......
$campo=htmlspecialchars($campo);
$query="INSERT INTO tabella(campo) VALUES('$campo')";
//....
?>
dimenticavo
uso generalmente charset=iso-8859-1
 
Ultima modifica:

Discussioni simili