PHP non passa la variabile

Ho riscontrato un problema piuttosto strano che mi ha completamente abbandonato.

Sto cercando di passare una variabile PHP da un file a un altro, quindi colbind quella variabile in una function di ricerca all'interno dell'API di Flickr.

Per mettere in context, sta tirando una variabile ($ posizione) contenente la posizione di una previsione del tempo. $ posizione (situata in scraper.php), che è definita dall'input dell'utente, entra nella function di ricerca. La function invia una richiesta all'API di Flickr, che restituisce un URL dell'image.

come va:

require_once('flickr.php'); include 'scraper.php'; $Flickr = new Flickr; $data = $Flickr->search($location); 

Tieni presente che tutto funziona perfettamente se definisco la string di ricerca nel file stesso. È solo quando provo a usare una variabile di scraper.php che non cerca nulla. Per esempio:

 $string = 'hawaii' $Flickr = new Flickr; $data = $Flickr->search($string); 

Quanto sopra funziona bene. Per rendere le cose ancora più confuse, se echo '$ posizione' prima che entri nella function di ricerca ottengo il risultato corretto bene. La variabile è lì e inclusa. Semplicemente non porterà alla function per qualche motivo.

Qualsiasi aiuto sarebbe apprezzato. Ecco il codice completo del progetto:

search.php:

 echo $location; $Flickr = new Flickr; $data = $Flickr->search($location); foreach($data['photos']['photo'] as $photo) { //returns 1 photo url at large size (1024) $image_url = 'http://farm' . $photo["farm"] . '.static.flickr.com/' . $photo["server"] . '/' . $photo["id"] . '_' . $photo["secret"] . '_b.jpg'; } 

flickr.php (la chiave API è stata rimossa):

 include 'scraper.php'; class Flickr { private $apiKey = 'MYAPIKEY'; public function __construct() { } public function search($query = null) { $search = 'http://flickr.com/services/rest/?method=flickr.photos.search&api_key=' . $this->apiKey . '&text=' . urlencode($query) . '&tags=city&sort=relevance&safe_search=1&per_page=1&content_type=1&has_geo=1&format=php_serial'; $result = file_get_contents($search); $result = unserialize($result); return $result; } } 

Non includerò scraper.php, perché è piuttosto grande, ma lo farò se ne avrò bisogno. $ posizione sta funzionando bene.

Grazie!

EDIT: viene utilizzato anche 'scraper.php' e si passano le variables in un'altra pagina per visualizzare il tempo.

Quando faccio eco a "$ location" da "search.php", ottengo un risultato di string corretto nella parte superiore, come accennato prima.

ecco il codice (search.php):

 $Flickr = new Flickr; echo $location; $data = $Flickr->search($location); 

Il command di eco printing bene in alto. Semplicemente non entrerà nella function di ricerca!

forse hai un problema di inclusione di file multipli. Utilizza include_once per includere "scraper.php" poiché lo includi più volte.

in flickr.php

 include_once('scraper.php'); 

while searching...

 require_once('flickr.php'); include_once('scraper.php'); //include or remove this line as it is already included in your flickr.php $Flickr = new Flickr; $data = $Flickr->search($location); 

Grazie a tutti per il vostro aiuto!

Ho consolidato un po 'il mio codice e incluso i comandi PHP da' search.php 'direttamente nel file che whereva eseguire la ricerca. Sono finalmente riuscito a passare la variabile attraverso. Ritagliando l'intermediario e conservando tutto in un unico file, le cose hanno cominciato a funzionare bene. Deve essere stato un problema di inclusione.