Explode a capo

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ragazzi problemino, praticamente prendo da un file txt, delle righe composte da nom;cognome;tel;indirizzo; esempio:
marco;mazzoli;3334578963;via compo;
marco;bianco;3457898741;via garibaldi;
monica;verdi;3387845123;via genova;
per prendere i dati faccio così:
PHP:
<html>
<head>
<title>Leggi dati</title>
</head>
<body>
<?php
$file = "C:\Users\PC_prova\Desktop\history.txt";
$dati = fopen($file, "r");
while ( $line = fgets($f, 1000) ) 
{
$dati=explode(";",$line);
echo $dati[2];
}
?>
</body>
</html>

Così facendo mi da questo risultato:
333457896334578987413387845123
Coma faccio a mettere a capo i risultati tipo così:
3334578963
3457898741
3387845123

Grazie ;)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Prova cosi

PHP:
$file = "C:\Users\PC_prova\Desktop\history.txt"; 
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
echo $dati[2].'<br>'; 
} 

/*
output:
3334578963
3457898741
3387845123
*/
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Grazie funziona alla grande altra domandina
PHP:
$file = "C:\Users\PC_prova\Desktop\history.txt"; 
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
echo $dati[2].'<br>'; 
}
Se per caso facessi così
PHP:
$file = "C:\Users\PC_prova\Desktop\history.txt"; 
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
} 
echo $dati[2].'<br>';
Mi da solo un numero come faccio ad ottenere lo stesso risultato di prima???
Grazie ;)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Grazie funziona alla grande altra domandina
PHP:
$file = "C:\Users\PC_prova\Desktop\history.txt"; 
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
echo $dati[2].'<br>'; 
}
Se per caso facessi così
PHP:
$file = "C:\Users\PC_prova\Desktop\history.txt"; 
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
} 
echo $dati[2].'<br>';
Mi da solo un numero come faccio ad ottenere lo stesso risultato di prima???
Grazie ;)
L'echo stampa ogni volta il numero di telefono dentro al foreach, quindi per ogni riga lo stampa, non ha senso metterlo fuori.
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ti faccio vedere perchè ti avevo fatto questa domanda ;)
PHP:
<html>
<head>
<title>Leggi dati</title>
</head>
<body>
<?php
if($_POST) {
	calcola_questo();
} else {
	mostra_form();
}
function calcola_questo()
{
$file = "C:\Users\PC_Sviluppo\Desktop\history.txt";
$dati = file($file);
foreach($dati as $line)
{ 
$dati=explode(";",$line); 
$confronto=$dati[2].'<br>'; 
} 
$prova = trim($_POST['prova']);
  if (in_array($prova,$confronto) ) {   
  echo "<center><h1>";
  echo "Trovato ;)";
  echo '<br/>';
  echo '<br/>';
  echo "</h1></center>";
  header( "refresh:5;url=index.php" );
  exit;
  } else {
  echo $prova;
  echo '<br/>';
  echo $confronto;
  }
}
function mostra_form()
{
?>
<form name="gatto" action="" method="post">
<input id="prova" name="prova" value="3334578963" />
<input name="invia" type="submit" value="Invia - Dati Registrazione" />
</form>
<?php
}
?>
</body>
Praticamente cerco un confronto nell'array e dato che mi da un solo risultato non riesce mai a trovare il numero che combacia perchè ne confronta solo uno.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
In quel modo dichiari una stringa che si sovrappone tutte le volte non un nuovo elemento dell'array, aggiusta cosi

PHP:
$confronto = array();
foreach($dati as $line) 
{  
$dati=explode(";",$line);  
$confronto[]=$dati[2];  
//volendo puoi riassumerlo in una linea array_push($confronto,explode(";",$line)[2]) togliendo le graffe
}

e dopo, dove lo stampi
PHP:
echo join('<br>',$confronto);
 
Ultima modifica:

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Un dubbio nel caso dovessi tirare fuori un nome appartenente ad un determinato numero come potrei fare?
tipo
PHP:
$risultato_nome = dat1[0] where $dati[2] = 3334578963; // l'ho messo sotto forma di query per farmi capire anche se così è una cavolata
echp $risultato_nome;
mi dovrebbe restituire: marco
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Nel foreach devi aggiungere una chiave che identifichi il nome

PHP:
foreach($dati as $line) 
{  
$dati=explode(";",$line);  
$confronto["$dati[0] $dati[1]"]=$dati[2];  
}

Cosi puoi ricavare il numero di telefono sapendo il nome
PHP:
echo $confronto['pinco pallo'];

e viceversa
PHP:
echo array_search(3334578963,$confronto);
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
ultima domandina hehehe e se volessi cancellare la riga a cui appartiene un numero?
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
cavolo mi sa che ho pasticciato perchè non accade nulla :S, sei sicuro che sia tutto ok e che cancelli l'intera riga? Scusa le domande sceme
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
cavolo mi sa che ho pasticciato perchè non accade nulla :S, sei sicuro che sia tutto ok e che cancelli l'intera riga? Scusa le domande sceme
Il codice sopra cancella l'elemento dell'array contenente il numero di telefono che hai messo (dove c'è $numero), non so se intendi altro per linea, comunque data la logica dello script dovrebbe essere a posto. Posta il codice pasticciato semmai
 

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Vorrei che cancellasse questa riga:
marco;mazzoli;3334578963;via compo;
nel file txt
PHP:
$numero='3334578963';
unset($confronto[array_search($numero,$confronto)]);
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Ti ho fatto una piccola funzione che dovrebbe andarti bene

PHP:
function rimuovi_linea($numero){
  $file = file('file.txt');
  foreach($file as $num => $line)if(strstr($line,(string)$numero)) unset($file[$num]);
  file_put_contents('file.txt',join('',$file));
}

rimuovi_linea(3334578963);

ps: ovviamente cambia la path del file
 
Discussioni simili
Autore Titolo Forum Risposte Data
Alex_70 foreach explode query PHP 3
A Problema con "explode" su campo date PHP 9
L problema explode PHP 1
alankanz switch case con explode PHP 1
F explode in una query PHP 4
M explode PHP 0
neo996sps Strano problema con explode di una data PHP 4
F Problema urgente con checkbox, array e explode PHP 10
D Explode di un array in mysql PHP 1
coteaz funzione explode? manipolazione di stringhe Javascript 2
G effetto explode in mx Flash 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
F Andare a capo all'interno di una tabella WordPress 4
W Mandare a capo valore di SQL Classic ASP 2
P textbox- scrivere tutto su una sola riga anche se si va a capo .NET Framework 2
D [MySQL] [PHP] SQL andare da capo MySQL 0
Cosina Andare a capo nel testo della mail ricevuta dal form php PHP 1
I [HTML] Tooltips vanno a capo HTML e CSS 6
A [PHP] Visualizzazione righe (a capo) file .txt PHP 2
M [PHP] A capo dopo if PHP 2
M Javascript/Php. Stringa di testo a capo con alert Javascript 7
trattorino [Javascript] Java script ritorni a capo Javascript 7
S [PHP] Fpdf e testo a capo con cell PHP 5
B Andare a capo in un file di testo dopo determinata frase PHP 2
M Come andare a capo con la libreria FPDF PHP 6
asevenx nl2br che spezza le frasi e aggiunge a capo in modo errato PHP 0
L echo - andar a capo nel codice html generato dal server PHP 3
A Inserire testo dinamico su immagine centrato e a capo PHP 1
A Inserire testo dinamico su immagine centrato e a capo PHP 0
I Php "a capo" PHP 15
D Immagini dentro textfield che restano in linea (e non vadano a capo) Flash 0
K jTextArea non va a capo Java 1
novello88 [risolto] Andare a capo in email di testo inviata con ASP Classic ASP 2
P Diminuire la grandezza del font invece che andare a capo HTML e CSS 2
E Codice per andare da capo PHP 0
L Andare a capo con gli array non troncando le parole Classic ASP 1
G come evitare l'a capo del testo nelle tabelle HTML e CSS 4
ivarello andare a capo chiamando un ping PHP 5
E ACCESS-il capo interessato in relazione non si autocompila! MS Access 0
S [cicli] Andare a capo dopo un tot Javascript 2
A tag <div> mi manda a capo il testo HTML e CSS 3
A A capo in un'array dentro ad un ciclo PHP 9
F problema a capo file txt PHP 2
A strip_tags per l'invio a capo PHP 11
M Andare a capo col PHP PHP 2
asevenx caratteri speciali, accenti e a capo PHP 3
C AJAX FORM MAIL - problema con gli a capo nel messaggio Javascript 0
M Ritorno a capo PHP 9
max_400 form mail - lettere accentate e ritorno a capo PHP 7
S A capo automatico all'interno della finestra di testo PHP 5

Discussioni simili