Domanda

Ho un piè di pagina in una pagina web, il piè di pagina si chiama footer.php. Mi piacerebbe il piè di pagina per avere un'immagine diversa a seconda di altre variabili. Voglio fare qualcosa di simile:

if (x=1) {include (str_replace('logo1.jpg','logo2.jpg','footer.php'));}
else
{include 'footer.php';}

Ma questo non funziona, lo fa solo un normale comprendono. C'è un modo per sostituire il testo in file, mentre tra cui loro?

È stato utile?

Soluzione

Usa qualcosa come:

if (x==1) {
    $image='logo1.jpg';
} else {
    $image = 'logo2.jpg';
}

include('footer.php');

//// footer.php

echo "<img src='".$image."'/>";

In sostanza, quello che avevi avrebbe cercato di fare la sostituzione sulla corda 'footer.php', non il file stesso. L'approccio appropriato qui sarebbe quella di utilizzare una variabile per l'immagine e avere l'uso piè di pagina che variabile quando fornendo l'immagine.

Altri suggerimenti

  

C'è un modo per sostituire il testo in file, mentre tra cui loro?

Sì, c'è, ma il tuo file incluso sarebbe dovuto tornare al suo contenuto.

footer.php

<?
return "<img src='#image'>";
?>

allora si può fare

echo str_replace("#image", "image.jpg", include("footer.php"));

non c'è niente di sbagliato in questo, ma ci si sente un po 'strano, però.

Se fossi in te, avrei la comprendono () solo di lavoro con una variabile pre-impostato come propone Jonathan Fingland, o recuperare i contenuti di un file di piè di pagina, come Tomas Markauskas propone.

Il tuo esempio non funziona perché si sta sostituendo 'logo1.jpg' con 'logo2.jpg' nel 'footer.php' stringa. Il risultato della sostituzione è ancora 'footer.php' e poi si sta solo tra cui un file con il nome che corrisponde la stringa.

Se avete veramente bisogno di sostituire una stringa in un file php ed eseguirlo in seguito, si potrebbe fare qualcosa di simile:

$file = file_get_contents('footer.php');
$file = str_replace('logo1.jpg', 'logo2.jpg', $file);
eval($file);

Ma ci sono modi migliori per ottenere ciò che si vuole (vedi risposta di Jonathan Fingland per un esempio).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top