2012-10-30 14 views
22

Zastanawiam się, czy można pobrać zmienną z określonego pliku php, gdy nazwa zmiennej jest używana w wielu plikach php. Przykładem jest taka:PHP, pobieranie zmiennej z innego pliku php

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

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

footer.php powinien mieć <a href="">$var1 from page1</a><a href="">$var1 from page2</a>

Ok przykładem jest nieco abstrakcyjne, ale tak krótki, jak Mogę to zrobić. Myślę, że dostajesz to, do czego dążę! Tak jest w stopce, której szukam! Masz jakieś rozwiązania?

+0

chyba że zmienna globalna że masz dostęp jest w już zawartych pliku, nie można się jej wartość. – jondinham

+0

zajrzyj do zakresu i globaliów - http://php.net/manual/en/language.variables.scope.php –

Odpowiedz

54

Można, ale zmienna w Twoja ostatnia to zastąpi zmienną w swoim pierwszym:

myfile.php

$var = 'test'; 

mysecondfile.php

$var = 'tester'; 

test.php

include 'myfile.php'; 
echo $var; 

include 'mysecondfile.php'; 
echo $var; 

wyjściowa:

Test

tester

Proponuję za pomocą różnych nazw zmiennych.

+0

Innymi słowy, nie jest to naprawdę możliwe? Do tego nie trzeba, po prostu dałbym mi lepszy kod! –

+0

Ten problem to prawdopodobnie Twój projekt. Co dokładnie próbujesz zrobić? –

+1

Próbuję odtworzyć ten sam tekst w dwóch różnych lokalizacjach, z których jedna znajduje się na stronie rzeczywistej, a druga na stopce uniwersalnej (footer.php). Zasadniczo używam zmiennej do łatwej aktualizacji! –

21

Można również użyć sesji do przekazywania małych bitów informacji. Będziesz musiał mieć session_start(); na górze strony PHP, które korzystają z sesji innego zmienne nie będą accessable

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

Naprawdę nie rozumiem, dlaczego to jest uzyskiwanie głosów w dół. Jest to całkowicie poprawna alternatywa dla tego, że OP może nie uwzględniać – Chris

2

użyciu include 'page1.php' w drugą stronę jest jedną z opcji ale może generować ostrzeżenia i błędy niezdefiniowanych zmiennych.
trzy metody, które można używać zmiennych jednego pliku php w innym pliku php:

  • użycia sesji przekazać zmienną z jednej strony na inną metodą
    :
    najpierw trzeba rozpocząć sesję w oba pliki przy użyciu polecenia php

    sesssion_start();
    następnie w pierwszym pliku należy wziąć pod uwagę jedną zmienną:
    $ x = 'var1';

    teraz przypisać wartość $ x do zmiennej sesji używając tych:
    $ _SESSION [ 'var'] = $ x;
    teraz coraz wartość w żadnym innym pliku php:
    $ y = $ _ SESSION [ 'var']; // $ y jest każdy uznany zmienna

  • za pomocą metody GET i uzyskanie zmiennych na kliknięcie Link
    metoda

    <a href="page2.php?variable1=value1&variable2=value2">clickme</a>
    uzyskanie wartości w pliku page2.php przez $ _GET funkcja:
    $x=$_GET['variable1'];//value1 be stored in $x
    $y=$_GET['variable2'];//vale2 be stored in $y

  • jeśli chcesz przekazać wartość zmiennej za pomocą przycisku, a następnie u można używać go przez następujący sposób:

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

0

Można również użyć 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

Czyta cały plik jako ciąg ... aby uzyskać wartość konkretnej zmiennej, wymagałoby dodatkowego przetwarzania. – TemporalWolf

+0

Byłoby interesujące zobaczyć "dodatkowe przetwarzanie" – Aloha

Powiązane problemy