Rieccomi
ulteriore problema un pò +difficile
mi speigo
ho un file txt così composto
Citta§nome§numero
ora pesco dal database mysql tutti nomi relativi a citta con questa quey
poi eseguo il seguente codice
i problemi sono due
A) facendo una prova con
ma avendo data count($data) mi restituisce tute le righe dove $ce_0 = 1 per tutte le righe del file cioè mi ripete le righe trovate ad esempio se trova la corrispondenza alla riga 15 me lo ripete epr 14 volte questo epr ogni elemento dell'array.
se l'array e composto da 3 nomi Tizio caio e sempronio e sono rispettivamente alal riga 10 15 20
Mi restituisce
9 volte la riga 10
14 la riga 15
19 la riga 20
dove ho sbagliato il for? ma diciamo che è il problema minore daro che
B)quando vadoa sovrascrivere le stringhe mi riscrive correttamente però vorrei arrivare a due cose
1)quando non trova la corrispondenza nel file txt deve aggiungere una riga
pensavo di usare l'if ce_0!=1 ma non so come aggiugnere la riga.
2)il valore "numero della riga trovata si deve incrementare di 1, in sostanza trovato il preg_match
quando vadoa s ostituire ci deve esse na cosa del genere
suggerimenti?
ulteriore problema un pò +difficile
mi speigo
ho un file txt così composto
Citta§nome§numero
ora pesco dal database mysql tutti nomi relativi a citta con questa quey
PHP:
$nomi=array();
$sqlquery = "SELECT * FROM tabella WHERE citta='Bari'";
$result = mysql_query($sqlquery);
while ($linea = mysql_fetch_array($result, MYSQL_ASSOC)){
$nomi[]= $linea['nome'];
}
poi eseguo il seguente codice
PHP:
foreach($nome as $newnome){
$d=array();
foreach($data as $i => $riga){
for($z=1; $z<=count($data); $z++){
$indx=$i+$z;
$d[$indx]= $data[$indx];
$n=$d[$indx];
$ce_0=preg_match("/Bari§".$newnome."§/i",$n);
if($ce_0==1){
$numeroA=$i+$z;
$gia = file($file,FILE_IGNORE_NEW_LINES);
$rigaDaSostituire = $numeroA; //123-esima riga
$rigaDiSostituzione = "Bari§".$newnome."§5";
$gia[$rigaDaSostituire] = $rigaDiSostituzione;
file_put_contents($file,implode("\n",$gia));
fclose($gia);
}
}
i problemi sono due
A) facendo una prova con
PHP:
echo $numeroA ;
se l'array e composto da 3 nomi Tizio caio e sempronio e sono rispettivamente alal riga 10 15 20
Mi restituisce
9 volte la riga 10
14 la riga 15
19 la riga 20
dove ho sbagliato il for? ma diciamo che è il problema minore daro che
B)quando vadoa sovrascrivere le stringhe mi riscrive correttamente però vorrei arrivare a due cose
1)quando non trova la corrispondenza nel file txt deve aggiungere una riga
pensavo di usare l'if ce_0!=1 ma non so come aggiugnere la riga.
2)il valore "numero della riga trovata si deve incrementare di 1, in sostanza trovato il preg_match
quando vadoa s ostituire ci deve esse na cosa del genere
PHP:
[U]$rigaDiSostituzione = "Bari§".$newnome."§(+1)";[/U]
$gia[$rigaDaSostituire] = $rigaDiSostituzione;
suggerimenti?