2012-10-30 11 views
22

Quindi mi chiedo se è possibile ottenere una variabile da uno specifico file php quando il nome-variabile viene utilizzato in più file php. Un esempio è questo:PHP, ottenendo variabile da un altro file php

<header> 
<title> 
    <?php echo $var1; ?> 
</title> 
</header> 

page1.php ha $var1 = 'page1' page2.php ha $var1 = 'page2'

footer.php dovrebbe avere <a href="">$var1 from page1</a><a href="">$var1 from page2</a>

Ok l'esempio è un po 'astratto, ma più breve Posso farcela. Penso che ottieni quello che sto ottenendo! Quindi è il footer che sto cercando! Hai qualche soluzione?

+0

meno che la variabile globale che si sta accedendo è in un file già incluso, non si può ottenere il suo valore. – jondinham

+0

guarda in ambito e globale - http://php.net/manual/en/language.variables.scope.php –

risposta

54

È possibile, ma la variabile nella tua ultima includono sovrascriverà la variabile nel primo:

myfile.php

$var = 'test'; 

mysecondfile.php

$var = 'tester'; 

test.php

include 'myfile.php'; 
echo $var; 

include 'mysecondfile.php'; 
echo $var; 

uscita:

prova

tester

Io suggerisco di usare diversi nomi di variabili.

+0

Quindi in altre parole questo non è davvero possibile? Per questa cosa non è necessario, mi darebbe solo il codice più ordinato! –

+0

Il problema è probabilmente il tuo progetto. Cosa stai cercando di fare esattamente? –

+1

Beh, sto cercando di riprodurre lo stesso testo in due posizioni diverse, una che si trova all'interno della pagina effettiva e una che si trova su un footer universale (footer.php). Fondamentalmente sto usando la variabile per un facile aggiornamento! –

21

È anche possibile utilizzare una sessione per il passaggio di piccoli bit di informazioni. Dovrai avere session_start(); nella parte superiore delle pagine PHP che utilizzano la sessione altrimenti le variabili non saranno accessibili

page1.php

<?php 

    session_start(); 
    $_SESSION['superhero'] = "batman"; 

?> 
<a href="page2.php" title="">Go to the other page</a> 

page2.php

<?php 

    session_start(); // this NEEDS TO BE AT THE TOP of the page before any output etc 
    echo $_SESSION['superhero']; 

?> 
+1

Non vedo davvero perché questo sta abbassando i voti. È un'alternativa perfettamente valida per comprendere che OP potrebbe non aver considerato – Chris

2

utilizzando include 'page1.php' nella seconda pagina è un'opzione ma può generare avvertimenti ed errori di variabili non definite.
tre metodi con cui è possibile utilizzare le variabili di un file php in un altro file php:

  • sessione di utilizzo di passare variabili da una pagina ad un altro metodo
    :
    Prima di tutto bisogna avviare la sessione in entrambi i file utilizzando il comando php

    sesssion_start();
    quindi nel primo file si considera una variabile
    $ x = 'var1';

    ora assegnare il valore di $ x ad una variabile di sessione utilizzando questo:
    $ _SESSION [ 'var'] = $ x;
    ora ottenere il valore in qualsiasi altro file php:
    $ y = $ _ SESSION [ 'var']; // $ y è qualsiasi dichiarata variabile

  • utilizzando il metodo get e ottenere le variabili facendo clic su un Link
    metodo

    <a href="page2.php?variable1=value1&variable2=value2">clickme</a>
    ottenere valori nel file di page2.php di $ _GET funzione:
    $x=$_GET['variable1'];//value1 be stored in $x
    $y=$_GET['variable2'];//vale2 be stored in $y

  • se si desidera passare il valore della variabile usando il tasto quindi u possibile utilizzare seguendo il metodo:

    $x='value1'
    <input type="submit" name='btn1' value='.$x.'/>
    in seconda php
    $var=$_POST['btn1'];

0

Si potrebbe anche usare file_get_contents

$url_a="http://127.0.0.1/get_value.php?line=a&shift=1&tgl=2017-01-01"; 
$data_a=file_get_contents($url_a); 

echo $data_a; 
+0

Questo legge l'intero file come una stringa ... per ottenere il valore di una variabile specifica richiederebbe un'ulteriore elaborazione. – TemporalWolf

+0

Sarebbe stato interessante vedere alcuni dei "processi aggiuntivi" – Aloha

Problemi correlati