Sostituire una sottostringa a una stringa data

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Salve, vorrei effettuare la seguente operazione:

$stringa=" stringa che ho scritto di prova ";
$start= "stringa"
$end= "prova"
$to_insert="messa per"

inserire $to_insert in $stringa cancellando ciò che è compreso tra $start e $end

ottenendo: stringa= stringa messa per prova

.......come si fa??
Grazie
 

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Modificare un file .php tramite un altro file .php

Ho riscontrato problemi utilizzando la funzione:
str_replace ($daCambiare, $sostituto, $fileContent);

che ho usato per modificare un file php. Il problema è che voglio sostituire una stringa di testo nel file con un'altra stringa.
Finché $sostituto è di pochi caratteri, la parola viene sostituita, ma quando utilizzo molti più caratteri (intere parti di codice html) la funzione non cambia mai il file!
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
non aprire due discussioni per un unico argomento, posta il codice che hai scitto fino ad ora
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
avevo guardato anche io, ma quello che avevo trovato non mi sembrava adatto (anche substr_) perche era il contrario di quello che voleva angeloulivieri, un conto è sapre (come nella grappa) quale è la testa e la coda prelevando il cuore, e un conte conoscere il cuore e prelevarlo.
secondo me, ma posso sbagliarmi, non è sufficiente una funzione del core php, ma bisogna costruirsene una che analizzi la stringa cerchi o la testa/coda e sostituisca qullo che c'è in mezzo, o saper quello che c'è in mezzzo e sostituirlo. dato le innumerevoli possibilità non credo che sia una cosa facile anche se fattibile
 

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Scusate per la doppia discussione. L'ho fatto pensando al fatto che fosse un problema diverso.
Comunque stavo pensando anche io ad analizzare la stringa punto per punto. Ma con PHP posso fare anche l'analisi del file carattere per carattere? Come con il C?
Diciamo che messa così il problema sarebbe:
stringa=get_contents(file)
start=id del DIV
posizione=CercaStart(stringa, start)
index=posizione
WHILE stringa[index]!= "Carattere '>' del tag DIV"
index++
CancellaTutto da Index a stringa '</DIV>'
InserisciNuovo da Index

Ovviamente questo comporta anche lo shift di tutto quello che c'è dopo.... che casino ragazzi!
Strano che PHP non abbia funzioni per sostituire ciò che è all'interno di un DIV...
 

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Ragazzi ho trovato questo codice:

<div id="tuodiv">
Ho comprato un capitello
</div>

<a href="#" onclick="document.getElementById('tuodiv').innerHTML = 'ho mangiato dei petardi';">
cambia
</a>

che però è javascript che alla pressione di un pulsante modifica l'HTML.. solo che mi chiedo se le modifiche saranno persistenti nel file...
Se tipo dopo aver fatto questo carico il file con php e lo salvo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
considerato che js lavora lato client penso che tu abbia dei problemi, soprattutto se il "cambio" lo fa un utente qualsiasi, perche anche se salvasse il suo file non può certo caricarlo sul sever. tra l'altro mi sembrerebbe, ma può darsi che sbagli, che far fare una cosa ad un utente possa essere estremante pericolosa
 

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Si lo so che è una cosa pericolosa...
L'utente si collegherebbe tramite user-id e password e solo ad alcuni utenti sarebbe permessa la modifica. Un pò come avere l'accesso a un pannello di controllo di un cms...
Solo che il file da modificare dovrebbe essere un php e ciò che è da modificare è scritto in questo file (e non memorizzato in un database). Dunque l'unica soluzione è modificare il file php.
Ho molti dubbi sulla sicurezza di questa operazione, non lo nego, ma dovrei farla così.
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Non è bellissimo cone codice ma dovrebbe funzionare, magari adattalo alle tue esigenze:

PHP:
<?php
	// Stringa iniziale da ricercare
	$string_to_find_start = htmlentities('<div id="id_name">');

	// Stringa finale da ricercare
	$string_to_find_end = '</div>';

	// Stringa da sostituire
	$string_to_replace = 'new_string';

	// Nome del file PHP in cui effettuare la ricerca e la sostituzione
	$php_page_to_modify = "php_page_to_modify.php";
	
	$content = file_get_contents($php_page_to_modify);
	
	$start = strpos($content, $string_to_find_start);
	$start += strlen($string_to_find_start) + 3;
	$end = strpos($content, $string_to_find_end, $start);
	$len = $end - $start;
	$content = substr_replace($content, $string_to_replace, $start, $len);
	
	$fp = fopen($php_page_to_modify, 'w');
	fwrite($fp, $content);
	fclose($fp);
	
	require($php_page_to_modify);
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
ho traovato questo sul manuale, guarda se ti può servire
http://it.php.net/manual/en/function.preg-replace.php

PHP:
<?php
$string = 'ne mezzo di camin di nostra vita mi ritrovai per una selva oscura';
echo $string."<br>";
$patterns = array();
$patterns[0] = '/mezzo/';
$patterns[1] = '/nostra/';
$patterns[2] = '/per una/';
$replacements = array();
$replacements[2] = 'tre quarti';
$replacements[1] = 'vostra';
$replacements[0] = 'due selve di cui una';
echo preg_replace($patterns, $replacements, $string);
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
JackIlPazzo Sostituire una riga specifica in un file di testo senza cancellare il rimanente PHP 13
L sostituire un carattere in una stringa acquisita da input jQuery 1
P Sostituire immagine in una cartella. PHP 6
C In una textarea sostituire il carattere \n in <br/> Javascript 14
D Sostituire img con altre img Photoshop 1
P [MS Access] Sostituire un carattere in tutta la tabella MS Access 11
Shyson [MySQL] Sostituire testo in in articolo MySQL 0
elpirata [MySQL] Sostituire valori campi con dati casuali MySQL 4
P [Photoshop] Sostituire i colori in modo preciso Photoshop 0
C [PHP] SOSTITUIRE VALORI DENTRO STRINGA PHP 0
elpirata [PHP] Sostituire if ed elseif con operatore ternario switch PHP 9
L [PHP] Sostituire link da stringa PHP 3
ecosito [WORDPRESS] Sostituire la cartella d'installazione? WordPress 2
S [Javascript] Sostituire elemento HTML preso randomicamente dentro array Javascript 1
M Sostituire le funzioni mysql con mysqli, ma quali? PHP 4
S Sostituire link con button. PHP 1
M sostituire parte di URL con espressioni regolari PHP PHP 8
Marco_88 Come sostituire valori in un campo per più oggetti. MySQL 2
A sostituire "onload" nel tag <img> con Js Javascript 17
max_400 Sostituire un div con un altro il comando innerHTML è bloccato Javascript 0
C Sostituire virgola con punto form PHP 2
P sostituire form con jquery jQuery 0
F sostituire un'immagine con jquery jQuery 2
felino Temperatura processore: soglia massima per sostituire pasta termica Hardware 2
Trapano sostituire iframe PHP 5
C Sostituire molte righe di codice PHP 2
S sostituire codice html in molti file HTML e CSS 1
N [RISOLTO] Sostituire Input con a href PHP 10
Shyson Sostituire onclick Javascript 2
M sostituire bottone con onchange submit Javascript 7
S Sostituire immagini in sequenza Javascript 4
C Sostituire il comando body onload Javascript 30
Erzsébeth Sostituire richiamo immagini PHP 4
IImanuII Php sostituire un iframe PHP 4
zighy Sostituire dati database PHP 7
M sostituire un valore con un altro corrispondente PHP 11
L Sostituire file_get_contents ? PHP 10
N leggere/sostituire/restituire file txt PHP 1
Z Onclick : sostituire odiosi "button" con semplici Links Javascript 13
U Sostituire le funzionalità di un pulsante con un testo HTML e CSS 0
S E' possibile sostituire un dominio con un altro? Domini 4
webbetto Sostituire un campo vuoto Database 4
E Scrivere una data corrente in un pdf PHP 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
I Assegnare dati fetch request ad una variabile globale Javascript 0
Shyson Puntare ad una sotto directory WordPress 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 6
S Selezionare ultimo record di una sotto query MySQL 26
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1

Discussioni simili