Kane250 Posted May 3, 2011 Share Posted May 3, 2011 Hi all, I'm at a dead-end here. I have a php file that I can query to return an array containing a bunch of data about a job listing. I include and query it by calling it like so within another file on my site. Quick Notes: The original file is in a different directory on my site than the page it's being included in. I have tried returning the array at the end of the script. I can print_r the array on the page I'm including the script on (so the URL path is correct). If I go to this URL directly and print_r on the array, I see the entire array as expected. Also, if I include the file on page 2 like I did above with print_r on the array in the original file, I see the array printed out on page 2. include 'http://www.example.com/php/job-details.php?job=jobname&city=thecity'; However, if I do not print_r on the array in the original file and just include it on page 2, I cannot do anything with it and the array variable isn't found. Is this a case of variable scope? I'm so frustrated... Here is the code I have in my original file: <? include('functions.php'); $jobtitlematch = $_GET["job"]; $jobcitymatch = $_GET["city"]; //echo $jobtitlematch; //echo $jobcitymatch; $url = 'http://somesite.com/something'; $xml = simplexml_load_file($url); foreach($xml->job as $job) { $jobtitle = makeURL((string)$job->title); $jobcity = makeURL((string)$job->region); if ($jobtitle == $jobtitlematch && $jobcity == $jobcitymatch) { $jobdata[] = array( Title => ((string)$job->title), URL_Title => makeURL((string)$job->title), Location => ((string)$job->region), URL_Location => makeURL((string)$job->region), Department => ((string)$job->department), URL_Department => makeURL((string)$job->department), Overview => ((string)$job->joboverview), Responsibilities => ((string)$job->responsibilities), Qualifications => ((string)$job->qualifications), Keywords => ((string)$job->metakeywords) ); } return $jobdata; //I have also tried return global $jobdata; } print_r($jobdata); ?> Thanks in advance for any help you can provide... Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/ Share on other sites More sharing options...
BloodyMind Posted May 3, 2011 Share Posted May 3, 2011 you cannot include a URL you should include a file not a url, for instance /var/www/a-file.php you can include that file, but force the $_GET with the keys you want. and you cannot use return without a function if you want to use job-details both way, then force the $_GET vars $_GET['job']='jobname'; $_GET['city']='thecity'; include_once 'php/job-details.php'; but if you don;t need to execute job-details.php directly from the browser, then just set the job and city vars as normal variables not $_GET and read them in the other file. I'd recommed that you read more about php I hope my reply was helpful Goodluck Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210136 Share on other sites More sharing options...
fugix Posted May 3, 2011 Share Posted May 3, 2011 you cannot include a URL you should include a file not a url, for instance /var/www/a-file.php you can include that file, but force the $_GET with the keys you want. and you cannot use return without a function you can include a URL as long as URL fopen Wrappers is enabled...which it is by default Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210137 Share on other sites More sharing options...
BloodyMind Posted May 3, 2011 Share Posted May 3, 2011 @fugix What version are you using, because its closed by default since php 5.2, and you have to have both directives on allow_url_fopen and allow_url_include it was closed because it is a major security risk, if you got it @fugix try to close it, for your server's security for reference, study something from the manual: http://php.net/manual/en/filesystem.configuration.php Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210140 Share on other sites More sharing options...
fugix Posted May 3, 2011 Share Posted May 3, 2011 i received that information from http://php.net/manual/en/function.include.php Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210141 Share on other sites More sharing options...
PFMaBiSmAd Posted May 3, 2011 Share Posted May 3, 2011 Since php code isn't included when you use a URL, none of the settings that affect if a URL can be used in an include statement are even relevant to the problem, especially since the OP can already use a URL in an include statement. When you use a URL in an include, only the output from the php code gets included, the same as if you browsed to the file. This also takes 50-100 times longer then if you included the file through the file system. Just do what BloodyMind suggested in reply #1 in the thread, include the file using the file system and if needed set up any $_GET variables that the included code needs. Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210155 Share on other sites More sharing options...
Kane250 Posted May 4, 2011 Author Share Posted May 4, 2011 Gotcha! I ended up including the file via the file system and I turned my code into a function that I just query after inclusion to get my data. This seems to be working perfectly. Thanks everyone! Link to comment https://forums.phpfreaks.com/topic/235455-cannot-include-array-from-another-file/#findComment-1210566 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.