Newsgroup: it.comp.www.php
Titolo: problema con foreach e strtolower

Ho la necessità di creare una tabella con le provincie italiane, non
trovandola già fatta ho creato questo script che funziona in tutto senonchè
converte i nomi delle città tutti in minuscolo anche la prima lettera che io
invece vorrei in maiuscolo.
Ho provato in mille modi, facendo anche altri esempi che hanno funzionato,
ma questo proprio non ne vuole sapere!!
Qualcuno mi dice dove sbaglio?
$stringa = 'AGRIGENTO</option><option value="AL">ALESSANDRIA</option><option
value="AN">ANCONA</option><option value="AO">AOSTA</option><option
value="AR">AREZZO</option><option value="AP">ASCOLI PICENO</option><option
value="AT">ASTI</option><option value="AV">AVELLINO</option>';
$ereg = ereg_replace("</option>", ",", $stringa);
$stampa = split( ',', $ereg );
foreach ( $stampa as $val )
{
 $val  = ucwords( strtolower($val) );
 print 'INSERT INTO prov (nome_prov) VALUES ("'.$val.'");<br>';
}
<?php
//------------------------------ 2 PROVA SIMILE CHE
FUNZIONA -----------------
$ereg = "AGRIGENTO,ALEeac e SSANDRIA,OGGi,Sono,ANDATO,AMANGIAre,";
$stampa = split( ',', $ereg );
foreach ( $stampa as $val )
{
 $val  = ucwords( strtolower($val) );
 print 'INSERT INTO prov (nome_prov) VALUES ("'.$val.'");<br>';
}
//------------------------------ 2 PROVA SIMILE CHE
FUNZIONA -----------------
?>

 Qualcuno mi dice dove sbaglio?
Hai provato a guardare il codice HTML generato dal tuo script?
Riporto un estratto:
INSERT INTO prov (nome_prov) VALUES ("Agrigento");<br>
INSERT INTO prov (nome_prov) VALUES ("<option
Value="al">alessandria");<br>
INSERT INTO prov (nome_prov) VALUES ("<option Value="an">ancona");<br>
Non hai fatto il parsing completo della stringa "$stringa" e la
funzione ucwords non capitalizza i nomi delle procinvie perche' sono
preceduti da ">"
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1

 preceduti da ">"
Ho diviso lo script in due:
// 1 script
$stringa = 'AGRIGENTO</option><option value="AL">ALESSANDRIA</option><option
value="AN">ANCONA</option><option value="AO">AOSTA</option><option
value="AR">AREZZO</option><option value="AP">ASCOLI PICENO</option><option
value="AT">ASTI</option><option value="AV">AVELLINO</option>';
$ereg = ereg_replace("</option>", ",", $stringa);
print $ereg;
// fine 1 script
// 2 script
$ereg = 'AGRIGENTO,ALESSANDRIA,ANCONA,AOSTA,AREZZO,ASCOLI
PICENO,ASTI,AVELLINO';
$stampa = split( ',', $ereg );
foreach ( $stampa as $val )
{
 $val  = ucwords( strtolower($val) );
 print 'INSERT INTO prov (nome_prov) VALUES ("'.$val.'");<br>';
}
//fine 2 script
...allora perchè se stampo $ereg dopo ereg_replace, copio-incollo nel
secondo script funziona?
Mi fai l'esempio come faresti a fare il parsing completo?...
Cristian Aka Cc

 Mi fai l'esempio come faresti a fare il parsing completo?...
E' sufficiente modificare il secondo script in questo modo:
// 2 script
$ereg  = strip_tags ($ereg); 
$stampa = split( ',', $ereg );
foreach ( $stampa as $val )
{
	$val = trim ($val);
	if ($val != "")
	{
		$val  = ucwords (strtolower ($val));
		$val = mysql_escape_string ($val);
		print 'INSERT INTO prov (nome_prov) VALUES ("'.$val.'");<br>';
	}
}
-- 


Grazie!

...strip_tags!
Grazie, non ci avevo pensato! Anzi non ci ero arrivato!
...sai di notte...ero cotto!