• Home
  • Forum
  • Fare Web
  • PHP

sostituire un valore con un altro corrispondente

  • Creatore Discussione Creatore Discussione mediasteno
  • Data di inizio Data di inizio 7 Lug 2011
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 7 Lug 2011
  • #1
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?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
28
Roma
alessandro1997.netsons.org
  • 7 Lug 2011
  • #2
Puoi postare tutto lo script?
 
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 7 Lug 2011
  • #3
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.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2011
  • #4
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:
 
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 7 Lug 2011
  • #5
$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.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2011
  • #6
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
 
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 7 Lug 2011
  • #7
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: 7 Lug 2011

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2011
  • #8
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.
 
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 7 Lug 2011
  • #9
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.044
150
63
PR
www.borgo-italia.it
  • 8 Lug 2011
  • #10
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
 
M

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
  • 8 Lug 2011
  • #11
:fonzie: ok Grazie. E' la soluzione ideale.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
28
Roma
alessandro1997.netsons.org
  • 8 Lug 2011
  • #12
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.
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

D
Sostituire img con altre img
  • Devja
  • 9 Set 2020
  • Photoshop
Risposte
1
Visite
1K
Photoshop 9 Set 2020
Max 1
P
[MS Access] Sostituire un carattere in tutta la tabella
  • Palicare
  • 6 Dic 2019
  • MS Access
Risposte
11
Visite
7K
MS Access 1 Giu 2021
picentia
P
[MySQL] Sostituire testo in in articolo
  • Shyson
  • 24 Mag 2019
  • MySQL
Risposte
0
Visite
1K
MySQL 24 Mag 2019
Shyson
[MySQL] Sostituire valori campi con dati casuali
  • elpirata
  • 4 Ott 2018
  • MySQL
Risposte
4
Visite
2K
MySQL 5 Ott 2018
borgo italia
P
[Photoshop] Sostituire i colori in modo preciso
  • potoshoppista
  • 1 Ott 2018
  • Photoshop
Risposte
0
Visite
1K
Photoshop 1 Ott 2018
potoshoppista
P
C
[PHP] SOSTITUIRE VALORI DENTRO STRINGA
  • colomber
  • 30 Ago 2017
  • PHP
Risposte
0
Visite
1K
PHP 30 Ago 2017
colomber
C
[PHP] Sostituire if ed elseif con operatore ternario switch
  • elpirata
  • 22 Mag 2017
  • PHP
Risposte
9
Visite
2K
PHP 24 Mag 2017
elpirata
L
[PHP] Sostituire link da stringa
  • lorenzo84
  • 31 Mar 2017
  • PHP
Risposte
3
Visite
2K
PHP 1 Apr 2017
criric
[WORDPRESS] Sostituire la cartella d'installazione?
  • ecosito
  • 21 Gen 2017
  • WordPress
Risposte
2
Visite
2K
WordPress 22 Gen 2017
LinuxOhYeah
L
S
[Javascript] Sostituire elemento HTML preso randomicamente dentro array
  • sunlightbanana
  • 5 Nov 2016
  • Javascript
Risposte
1
Visite
2K
Javascript 5 Nov 2016
sunlightbanana
S
M
Sostituire le funzioni mysql con mysqli, ma quali?
  • mickey123
  • 20 Mag 2016
  • PHP
Risposte
4
Visite
2K
PHP 21 Mag 2016
borgo italia
S
Sostituire link con button.
  • Strelecaster
  • 6 Mag 2016
  • PHP
Risposte
1
Visite
2K
PHP 6 Mag 2016
Strelecaster
S
M
sostituire parte di URL con espressioni regolari PHP
  • mickey123
  • 10 Apr 2015
  • PHP
Risposte
8
Visite
3K
PHP 10 Apr 2015
mickey123
M
Come sostituire valori in un campo per più oggetti.
  • Marco_88
  • 6 Feb 2015
  • MySQL
Risposte
2
Visite
2K
MySQL 9 Feb 2015
Marco_88
Sostituire una riga specifica in un file di testo senza cancellare il rimanente
  • JackIlPazzo
  • 18 Nov 2014
  • PHP
Risposte
13
Visite
6K
PHP 19 Dic 2014
Longo8
A
sostituire "onload" nel tag <img> con Js
  • acweb-2004
  • 23 Ago 2014
  • Javascript
Risposte
17
Visite
5K
Javascript 25 Ago 2014
acweb-2004
A
Sostituire un div con un altro il comando innerHTML è bloccato
  • max_400
  • 17 Ago 2014
  • Javascript
Risposte
0
Visite
2K
Javascript 17 Ago 2014
max_400
C
Sostituire virgola con punto form
  • colomber
  • 27 Lug 2014
  • PHP
Risposte
2
Visite
8K
PHP 27 Lug 2014
colomber
C
P
sostituire form con jquery
  • processore
  • 16 Lug 2014
  • jQuery
Risposte
0
Visite
2K
jQuery 16 Lug 2014
processore
P
F
sostituire un'immagine con jquery
  • Fabio90
  • 18 Mag 2014
  • jQuery
Risposte
2
Visite
5K
jQuery 19 Mag 2014
Fabio90
F
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?