sostituire un valore con un altro corrispondente

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Credo che mi sto perdendo in una cavolata!! Devo sostituire le stringhe "[foto01]" con "01", "[foto02]" con "02", "[foto03]" con "03", in modo tale che riesca poi a crearmi in modo dinamico l'url dell'immagine che devo andare a sostituire nelle parti del testo che contenga [foto01], [foto02], oppure [foto03].
Ho provato diverse strade, l'ultima provata è:

PHP:
    $foto = array("[foto01]","[foto02]","[foto03]");
    $num = array("01","02","03");
    $n = str_ireplace($foto,$num,$n);
    
        $pic = "$manifestazione".'_'."$n";
        $testo = str_ireplace($foto,$pic,$testo);
          echo $testo;

ma non il risultato sperato. Mi stampa solo $manifestazione_ e non il numero corrispondente
cosa non va?
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
mi sa che il problema è come imposto il procedimento. Praticamente ho un testo che estraggo da un campo di un dbase e devo formattarlo. Ho inserito nel testo [foto01] [foto02] [foto03] laddove va inserita la foto. Quindi il mio obiettivo è sostituire [foto01] con <img src='nomevento01.jpg'>. Per fare questo uso una funzione che è:

PHP:
<?php
function formattazione ($manifestazione,$testo)
{
 /*formatto il testo in grassetto, corsivo ecc*/
............
  /*si procede alla sostituzione delle foto*/
    $foto = array("[foto01]","[foto02]","[foto03]");
    $num = array("01","02","03");
    $n = str_ireplace($foto,$num,$n);
        $pic = "$manifestazione".'_'."$n";
        $testo = str_ireplace($foto,$pic,$testo);

  return $testo;
}
?>

e successivamente ho la chiamata alla funzione
$programma = formattazione ($manifestazione,$programma);

dove $testo è il testo da formattare.

Ho notato che se sostituisco $testo con $n nel testo ho la sostituzione desiderata (i valori 01,02 ecc) ma io devo ottenere come risultato finale il percorso dell'immagine ed è questo che mi blocca :book:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ci sono un paio di cose che non mi tornano
1.
intanto per sotituire [foto01] ecc.. con 01 ecc...
farei
$n = str_replace($foto,$num,$num);
2.
nella riga di $pic scrivendo
$pic= "$manifestazione";
non scrivi manifestazione, ma il valore della variabile $manifestazione che non è inizializzata, quindi vuota
3.
sempre alla riga di $pic fai un concatenamento (a parte quello detto al 2.) tra una stringa e un array ($n è un array)
4.
io userei str_replace o meglio preg_replace

tutto questo se non ho preso un granchio:dormo:
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
$manifestazione è inizializzata (lo estraggo con una SELECT da un dbase) e infatti io non ottengo la stampa di $manifestazione ma il contenuto della variabile.
Ho un pò modificato lo script precedente anche se il procedimento è lo stesso. Da quanto ho capito l'errore sta nel fatto che concateno un'array con delle variabili.
PHP:
..........
    $foto = array("[foto01]","[foto02]","[foto03]");
    $num = array("01","02","03");
    $n = str_replace($foto,$num,$num);

    $url01 = "<img src='pic/";
    $url02 = "_";
    $url03 = ".jpg' alt='' width='540px' height='200px'>";

    $url = $url01.$manifestazione.$url02.$n.$url03;

        $testo = str_ireplace($foto,$url,$testo);
............

Forse devo provare ad usare foreach ma ancora non sono tanto pratica :book:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quanto ho capito tu vuoi ottenere il link delle foto (da 01 in poi) cioè qualcosa di simile
HTML:
<!--....-->
<img src="pic/Palio_01.jpg" alt="" width="540px" height="200px">
<img src="pic/Palio_02.jpg" alt="" width="540px" height="200px">
<img src="pic/Palio_03.jpg" alt="" width="540px" height="200px">
<!--ecc....-->
o sbaglio? se è così potresti fare qualcosa del genere

PHP:
<?php
//................
foreach($n as $valore){
echo "<img src=\"pic/".$manifestazione."_".$valore.".jpg\" alt=\"\" width=\"540px\" height=\"200px\"><br>";
}
//..............
?>
oppure scrivendo l'echo più semplicemente
PHP:
<?php
//................
foreach($n as $valore){
echo "<img src=\"pic/$manifestazione_$valore.jpg\" alt=\"\" width=\"540px\" height=\"200px\"><br>";
}
//..............
?>

se ho capito male scusa
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Non esattamente. Praticamente ho un testo $testo dove ho inserito in più parti [foto01], [foto02] e cosi via. Devo sostituire [foto01] l'url della foto che io ho nominato con $manifestazione_01.jpg, il punto indicato con [foto02] va sostituito con l'url della foto che io ho nominato $manifestazione_02. jpg e cosi via.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ma ad una certa età si è un po' duri di comprendonio.
quindi hai un testo del tipo:

PHP:
$testo="nel mezzo di camin [foto01] di nostra vita mi ritrovai in una selva [foto02] oscura che la diritta via [foto03] era smarrita...";
poi hai le foto (es. inferno_01.jpg, inferno_02.jpg ecc...) e vorresti che il testo diventasse:
PHP:
<?php
$testo="nel mezzo di camin <img src=\"pic/inferno_01.jpg\" .....> di nostra vita... eccetera...";
?>
se è così, con un po' di pazienza ci do un'occhiata poi ti posto alcune dritte.
 

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
esattamente mi sono persa in una valle oscura! ed io che pensavo fosse una cavolata! Si è esattamente quello che devo fare. Oggi ci ho talmente ragionato che ora non riesco a trovare più la dritta via!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se sei sicura che nel testo la str da cambiare si scritta [foto01], [foto02] ecc...., potresti fare così
PHP:
<?php
//questa è quella che ricavi dal db
$manifestazione ="inferno";
//e questo è il testo da trattare
$testo_iniziale="nel mezzo di camin [foto01] di nostra vita... eccetera...";
//costruisci la prima parte della stringa da sostituire
$cambia_1="[foto";
//che deve essere cambiata con
$con_1="<img src=\"pic/$manifestazione_";
//costruisci la parte finale da campiare
$cambia_2="]";
//che deve essere cambiata con
$con_2=".jpg\" alt=......>";
//esegui la prima sostituzione
$testo_1=str_ireplace($cambia_1,$con_1,$testo_iniziale);
/*in $testo_1 dovresti trovare
"nel mezzo di camin <img src=\"pic/inferno_01] di nostra vita... eccetera..."
*/
//esegui la seconda sostituzione
$testo_2=str_ireplace($cambia_2,$con_2,$testo_1);
/*in $testo_2 dovresti trovare
"nel mezzo di camin <img src=\"pic/inferno_01.jpg\" .....> di nostra vita... eccetera..."
*/
echo testo_2;
?>
eventualmente provalo e sappimi dire
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ma usare le PCRE no, vero?
PHP:
<?php
$string = 'Questa stringa [foto1] contiene [foto2] delle foto [foto3].';
$string = preg_replace('@\[foto(\d+)\]@', '<img src="$1.jpg" />', $string);

// Questa stringa <img src="1.jpg" /> contiene <img src="2.jpg" /> delle foto <img src="3.jpg" />.
echo $string;
?>
Ovviamente dovrai adattare il percorso delle foto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
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
JackIlPazzo Sostituire una riga specifica in un file di testo senza cancellare il rimanente PHP 13
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
L sostituire un carattere in una stringa acquisita da input jQuery 1
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
P Sostituire immagine in una cartella. PHP 6
M sostituire bottone con onchange submit Javascript 7
S Sostituire immagini in sequenza Javascript 4
C In una textarea sostituire il carattere \n in <br/> Javascript 14
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
A Sostituire una sottostringa a una stringa data 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
G Valore del campo id maggiore di 9999 MySQL 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
R valore value di un id da passare in chiamata ajax Ajax 3
napuleone modificare il valore dellascroll bar di webkit HTML e CSS 8

Discussioni simili