implode e array

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Salve a tutti. Ho un form che alla pressione del tasto submit mi scrive delle righe su un file. Il problema è che la riga la trova e la scrive giusta solo che mi aumenta la spaziatura di tutte le altre righe del file.

il codice è questo

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>

<title>Installer!</title> 

<meta name="DC.Language" scheme="RFC1766" content="Ita">
<meta HTTP-EQUIV="Imagetoolbar" Content="no">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<link rel="stylesheet" type="text/css" href="../css/step.css">

</head>

<body>

<div id="form">

<?php

$action = htmlspecialchars($_GET['action'], ENT_QUOTES);

if (!$action){ 

?>

<h1>3. Impostazioni personali</h1>

<form name="modulo2" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>?action=scrivi" method="post" enctype="multipart/form-data" >
			
			<fieldset>
			<label>Limite massimo di e-mail giornaliere</label>
			<input type="text" name="gio" id="gio" size="5"  autocomplete="off" />
			</fieldset>

<div id="bottons">
			<input type="submit" id="submit" name="Submit" value="Crea">
			<input type="reset" id="submit" value="Reset">
			<input type="button" id="submit" value="Ricarica" onClick="document.location.reload()">
</div>	
</form> 

<?php
}

if ((isset($_POST['Submit'])) && ($action == "scrivi")){
	
	$mailgiorno = $_POST['gio'];
	
if (!filter_var(!empty($mailgiorno) || is_numeric($mailgiorno) )){ 

    echo  "Il valore del primo campo non è valido o è vuoto."; 
	
	}else{
	
		$lines = file('file.php'); 
		$lines[2] = '$numero = ' . $mailgiorno . ';'; 
		file_put_contents('file.php', implode("\n", $lines)); 
		echo "Valore scritto con successo!";		
		
		}
}
?>

</div>	
</body>
</html>

Il problema è
PHP:
implode("\n", $lines));

Lo \n viene ripetuto anche per le altre righe.

esempio

Prima il file da scrivere è:

PHP:
<?php
echo 'ciao occupo la 2 riga';
$numero = ;
echo 'ciao occupo la 4 riga';
echo 'ciao occupo la 5 riga';
?>

Dopo diventa:
PHP:
<?php

echo 'ciao occupo la 2 riga';

$numero = 10;
echo 'ciao occupo la 4 riga';

echo 'ciao occupo la 5 riga';

?>

Non facendomi più ritrovare con le righe
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
mettendo un var_dump sulla riga ho notato che la stringa veniva scritta con un ritorno a capo
ti basta sostituire i ritorni con str_replace()

PHP:
 $lines = file('file.php');
        // sostituisco i ritorni a capo
        $lines = str_replace("\n", "", $lines);
        // var_dump($lines);
        $lines[2] = '$numero = ' . $mailgiorno . ';';
        file_put_contents('file.php', implode("\n", $lines));
        echo "Valore scritto con successo!";
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Ciao,
mettendo un var_dump sulla riga ho notato che la stringa veniva scritta con un ritorno a capo
ti basta sostituire i ritorni con str_replace()

PHP:
 $lines = file('file.php');
        // sostituisco i ritorni a capo
        $lines = str_replace("\n", "", $lines);
        // var_dump($lines);
        $lines[2] = '$numero = ' . $mailgiorno . ';';
        file_put_contents('file.php', implode("\n", $lines));
        echo "Valore scritto con successo!";

Perdonami non ho capito come deve essere il codice.

La parte del ritorno a capo è questa
file_put_contents('file.php', implode("\n", $lines));

quindi per essere corretta come devo fare? Una cosa tipo questa?

$acapo = str_replace('\n')
file_put_contents('file.php', implode($acapo, $lines));
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Se faccio in questo modo:

PHP:
		$lines = file('file.php'); 
		$acapo = str_replace("\n");
		$lines[2] = '$numero = ' . $mailgiorno . ';'; 
		file_put_contents('file.php', implode($acapo, $lines));
		echo "Valore scritto con successo!";

Da quest errore:

Codice:
Warning: Wrong parameter count for str_replace() in /home/a2058901/public_html/FakeMailer/mailer 3.1/install/steps/3.php on line 82

Ho letto qui https://www.mrw.it/php/ref/str-replace_477.html e non ho capito come utilizzarla nel mio caso...
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Se faccio in questo modo:

PHP:
		$lines = file('file.php'); 
		$acapo = str_replace("\n");
		$lines[2] = '$numero = ' . $mailgiorno . ';'; 
		file_put_contents('file.php', implode($acapo, $lines));
		echo "Valore scritto con successo!";

Da quest errore:

Codice:
Warning: Wrong parameter count for str_replace() in /home/a2058901/public_html/FakeMailer/mailer 3.1/install/steps/3.php on line 82

Ho letto qui https://www.mrw.it/php/ref/str-replace_477.html e non ho capito come utilizzarla nel mio caso...

Ok sono pirla, non avevo visto che la modifica era già stata fatta....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si,
il codice che ti ho postato era quello funzionante ma non ho capito ..

sei riuscito a risolvere?
 
Discussioni simili
Autore Titolo Forum Risposte Data
helpdesk Convertire array in stringa (implode) PHP 29
P comando implode() PHP 27
ivarello implode e virgola frontale PHP 2
helpdesk implode riga per riga PHP 2
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
M Passaggio variabili array php su un tasto jq PHP 3
M Somma inversa di Array C/C++ 2
MarcoGrazia Iterazione array PHP 5
N Passare array da php a javascript PHP 5
G Ordinare un array multidimensionale PHP 4
H Errore su array associativo PHP 1
K Array senza ripetizioni Presentati al Forum 4
A Gestione array multidimensionale PHP 6
otto9due Più chiavi in array con array_key_exists() PHP 0
M Array associativi php su 2 campi mysql PHP 10
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L Sessione e array per utenti PHP 0
R Importazione csv su mysql tramite array PHP 2
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
P Ciclare tra array di oggetti PHP 1
R Raggruppare valori array PHP 5
S Come conoscere la posizione di numeri in un array escludendo i doppioni PHP 4
D Popolare array PHP 8
R Includere elementi array fra apici PHP 1
P Array da foreach PHP 2
N Variabile di sessione è un array PHP7 PHP 3
R Scorporare array e recuperare record tabella PHP 10
A Contare gli elementi di un array PHP 13
A Importare array in mysql PHP 1
A Array di immagini Sviluppo app per Android 10
D Chiave unica in estrazione dati da array php PHP 0
D Spazio vuoto in un elemento di un array php PHP 2
S Come filtrare valori di un array PHP 4
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
max1974 PHP, Array Multidimensionale e Grafici PHP 22
S [PHP] Confrontare due array con valori quasi uguali PHP 2
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R [PHP] Visualizzazione dati Array PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
M Importare - Manipolare Json Array Sviluppo app per Android 2
M [PHP] Problemi su inserimento array nel db PHP 7
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
G [ASP] Ciclare i valori di 2 array Classic ASP 2
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
max1974 [PHP] Raggruppare array PHP 4
A [PHP] Caricamento database in array PHP 11
G sql select con array in php PHP 1

Discussioni simili