[PHP] file di testo e array

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Buonasera,
dopo innumerevoli tentativi provo a chiedere aiuto, sperando qualcuno di voi possa darmi una mano. Gioco con PHP da tre mesi e quello che cerco di fare è apparentemente semplice (lo faccio già in ASP ) ma, evidentemente, sbaglio qualcosa.

Ho un file (.dat) che è un file di testo scritto automaticamente, composto da 4 righe.
Ho pensato di usare l'istruzione File per leggerlo in quanto crea un array con ciascuna riga del testo

Array ricavato
[0] dato non importante
[1] dato da estrarre
[2] riga vuota
[3] dato da estrarre

e in effetti viene restituito correttamente (visualizzando le variabili con echo) ma al momento di utilizzare il risultato in un ciclo If else qualcosa va storto.

PHP:
$testo = file("c:\Info.dat");

$Uno = str_replace("On1=","",$testo[1]);
$Due = str_replace("On2=","",$testo[3]);

if ($Uno == "Giornale") {

         $evento = "Aperitivo";
         $titolo = "Domani sera";
         $img1 = "/img/01.jpg";
         $img2 = "/img/02.jpg";
         $img3 = "/img/03.jpg";

} else {

 $titolo = "no titolo";
 $evento = "no evento";

  $img1 = "/img/noimg.jpg";
  $img2 = "/img/noimg2.jpg";
  $img3 = "/img/noimg3.jpg";
}

Il problema è che il confronto funziona SOLO con la variabile $Due, mentre la variabile $Uno (pur essendo uguale ) viene ignorata e il ciclo passa ad Else.
Spero di essermi spiegato.

Tra l'altro utilizzo lo stesso file di testo con ASP e funziona tutto correttamente... non capisco.
Perdonate le eventuali castronerie da novellino e grazie per l'attenzione.

Paolo
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Controlla l'entry point della condizione, probabilmente hai qualche spazio aggiuntivo alla fine della stringa...

Nel replace aggiungi il trim
PHP:
str_replace("On1=","",trim($testo[1]));
 
  • Like
Reactions: paolissimo

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Controlla l'entry point della condizione, probabilmente hai qualche spazio aggiuntivo alla fine della stringa...

Nel replace aggiungi il trim
PHP:
str_replace("On1=","",trim($testo[1]));

Grazie Marcus! Il problema era proprio quello, ora funziona alla grande!
Già che ci sono provo a chiederti un'altra soluzione: ho tentato di far leggere il file direttamente da un pc che ho in rete locale e che ho collegato come unita di rete (z) ma senza riuscirvi. Per ovviare il problema faccio copiare sul computer dove gira PHP server il file con un batch dos... ma non è il massimo. Ritieni sia possibile farlo?
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Devi rendere la directory leggibile.
Non è il massimo la soluzione, ma puoi adattarlo facilmente anche con uno script php installato sulla macchina in rete...
 

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Devi rendere la directory leggibile.
Non è il massimo la soluzione, ma puoi adattarlo facilmente anche con uno script php installato sulla macchina in rete...

Ho fatto altre prove ma non riesco. La directory è condivisa in rete e sul server dove gira PHP condivisa come unità di rete, in pratica si accede liberamente con z:\Info.dat. Non riesco a farglielo vedere.
 

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Perchè tu accedi da Z:??? Forse meglio da indirizzo IP!
In verità ho provato prima con l'IP e poi, non essendoci riuscito, con Z. Anche cercando su internet non ho trovato soluzioni a questo quesito. Sei conosci il modo ti prego di illuminarmi con un esempio pratico perche' ho già fatto decine di tentativi.
Devo leggere il file di testo dal disco C (condiviso) di un pc in rete locale e mi sembra impossibile non riuscirci... eppure.
 

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Posta il comando!

PHP:
$testo = file("c:\Info.dat");

fopen ("http://www.example.com/", "r");

ho provato a sostituire con l'ip 192.168.1.120 il percorso locale, con doppi e tripli backslash (non ricordo più tutte le prove che ho fatto) il senso è quello: devo leggere un file posto su un computer in rete locale e non conosco il comando o la sintassi corretta per farlo. Al contrario leggere un file remoto posto su un server http, con fopen, sembra banale.
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Scusa, ma tu devi puntare al file remoto quindi se monti l'unità sulla macchina dove ci sta il web server dovresti fare file('Z:\\percorso_file')
e non file("c:\Info.dat");
 

paolissimo

Nuovo Utente
4 Gen 2018
16
0
1
Scusa, ma tu devi puntare al file remoto quindi se monti l'unità sulla macchina dove ci sta il web server dovresti fare file('Z:\\percorso_file')
e non file("c:\Info.dat");
Ma certamente, avevo provato anche con ('z:\\info.dat'), ma con l'unità il risultato non cambia. Il fatto che anche cercando in rete non ci sia uno straccio di indicazione mi fa iniziare a pensare che con PHP sia impossibile
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
mi fa iniziare a pensare che con PHP sia impossibile
Probabilmente non hai dato i permessi giusti... Poi dipende dal tipo di condivisione che hai fatto, ed anche dal firewall... Al massimo ti conviene creare un server FTP sulla macchina che ha il file remoto, effettui una connessione ed il gioco è fatto!
 
Discussioni simili
Autore Titolo Forum Risposte Data
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
Gabriele15497514 php testo errato durante la lettura del file txt quando lo script viene eseguito contemporaneamente PHP 3
Cosina [PHP] Cancellare una riga da un file di testo in base al nome PHP 2
B [PHP] Elimina quindi aggiungi una riga in un file di testo PHP 0
Roulder [PHP] Stampa file di testo Automatico senza conferma PHP 1
S Output file php in formato testo PHP 9
T Calendario in PHP (con file di testo) PHP 4
L php file di testo(db) cancellare una stringa Database 0
L php file di testo(db) cancellare una stringa PHP 1
L File di testo e Php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
C Wp-admin a file php WordPress 5
csi Inviare file jpg in locale alla stampante con php PHP 0
U Link a doppio file PHP PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
G leggere file txt e stampare con php il contenuto a video PHP 7
L Ricezione dei dati su file php da modulo html PHP 6
A invio massivo dati a file php Javascript 4
P Funzione jQuery Ajax invio file a php jQuery 1
B ciclare file xml con PHP PHP 1
S Libreria PHP per creare file dwg o dxf PHP 0
R Download file multipli da directory php PHP 0
N file manager da php 5 a 7 PHP 15
felino PHP e script generazione file excel PHP 2
W Rinominare un file in PHP PHP 7
M Richiamare una singola funziona da file php PHP 2
S mantenere le modifiche in un file php PHP 2
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
G [PHP] Trovare tutti i file a un arl PHP 2
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
S [PHP] Recupero nome immagine da Form con input file PHP 3
L includere file inc.*.php in automatico PHP 1
D [Javascript] inserire uno script in un file php Javascript 6
C [PHP] Problema con download file PHP 0
F [PHP] Importare file CSV in HTML PHP 12
M [PHP] Errore di percorso, file not found PHP 3
S [PHP] Upload stesso file PHP 14
J Passaggio variabile tra 2 file php PHP 15
D [PHP] editor per file doc o rtf direttamente online PHP 0
Cosina [PHP] Cancellare una riga da un file txt in base alla data PHP 1
C [PHP] File locali PHP 10
M [PHP] Importare file csv su server PHP 0
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
M [PHP] Eliminazione utente e tutti i suoi file caricati in una cartella PHP 8
M Non corretta lettura del file php.ini della sezione CLI PHP 3
R php Somma valori in file csv PHP 2
S [PHP] come esportare due tabelle in file excel su due fogli distinti PHP 8
F [PHP] Importare file CSV in HTML PHP 3
G [PHP] upload file in server: percorso cartella PHP 2

Discussioni simili