On 4 December 2010 20:58, Kirk Bailey <kbai...@howlermonkey.net> wrote: > the code is now: > > <?php # The next several lines declare an array of directories which > are NOT to be listed! > $excludes[] = 'images'; > $excludes[] = 'cgi-bin'; > $excludes[] = 'vti_cnf'; > $excludes[] = 'private'; > $excludes[] = 'thumbnail'; > > $ls = scandir(dirname(__FILE__)); > foreach ($ls as $d) { > if (is_dir($d) && !preg_match('/^\./',basename($d)) && > !in_array(basename($d),$excludes)) { > echo '<li><a href="'.$d.'">'; > echo include($d.'/desc.txt' ); > echo '</a><br/>'.PHP_EOL; > } > } > ?> > > And it works! > BUT!!!!! > Where is the "1" coming from?!? > Please inspect the page and see what I mean. This is not in the code, and > it's not in the source file. Link: > http://www.howlermonkey.net/dirlisting.php > > I hope this dialog is proving at least mildly interesting to the remainder > of the list as an educational exercise. > > > Tamara Temple wrote: >> >> On Dec 4, 2010, at 2:15 PM, Kirk Bailey wrote: >> >>> The hound barks, but does not yet properly hunt, and we need to bring >>> home the bacon. >>> >>> OK, here is the current code: >>> >>> <?php # The next several lines declare an array of directories which >>> are NOT to be listed! >>> $excludes[] = 'images'; >>> $excludes[] = 'cgi-bin'; >>> $excludes[] = 'vti_cnf'; >>> $excludes[] = 'private'; >>> $excludes[] = 'thumbnail'; >>> >>> $ls = scandir(dirname(__FILE__)); >>> foreach ($ls as $d) { >>> if (is_dir($d) && !preg_match('/^\./',basename($d)) && >>> !in_array(basename($d),$excludes)) { >>> echo '<li><a href="'.$d.'">'.include('./'.$d.'/desc.txt') >>> ;#.'</a><br/>'.PHP_EOL; >>> } >>> } >>> ?> >>> >>> the url again, to view the results, is >>> http://www.howlermonkey.net/dirlisting.php and is live right now. The >>> results are a tad odd to say the least. >>> >> >> Ok, I don't think that's actually the code that generated the page you >> link to, but let's go with what you've got. >> >> First of all, include() does not return a string to the calling program. >> include() basically redirects the php interpretter to process the contents >> of the file. What include() returns is success or failure of the execution >> of the included script. To use the current setup you have with the desc.txt >> files, you want to do something like this: >> >> echo '<li><a href="'.$d.'">'; >> include('./'.$d.'/desc.txt'); >> echo '</a></li><br />'.PHP_EOL; >> >> If the file desc.txt contains only text, it will get sent to the browser >> as is. >> >> >>> >>> >>> >>> Kirk Bailey wrote: >>>> >>>> Ok, let's kick this around. >>>> >>>> iterating an array(?; 1 dimensional listing of things) in php, I am >>>> creating a list of direcoties. I want to open and read in a file in each >>>> directory with a standard name, which contains a 1 line description of the >>>> directory and it's purpose. >>>> >>>> Now, here's the existing code; this code is online NOW at this url: >>>> http://www.howlermonkey.net/dirlisting.php >>>> >>>> * 1<?php # The next several lines declare an array of directories >>>> which are 2NOT to be listed! >>>> 3$excludes[] = 'images'; >>>> 4$excludes[] = 'cgi-bin'; >>>> 5$excludes[] = 'vti_cnf'; >>>> 6$excludes[] = 'private'; >>>> 7$excludes[] = 'thumbnail'; >>>> 8 >>>> 9$ls = scandir(dirname(__FILE__)); >>>> 10foreach ($ls as $d) { >>>> 11if (is_dir($d) && !preg_match('/^\./',basename($d)) && >>>> 12!in_array(basename($d),$excludes)) { >>>> 13 echo '<li><a href="'.$d.'">'.$d.'</a><br/>'.PHP_EOL; >>>> 14 } >>>> 15} >>>> 16?>* >>>> >>>> Let's say the file to read in /elite is named 'desc.txt'. >>>> It looks like you want me to modify line 13 to say: >>>> echo '<li><a href="'.$d.'">'.include($d.'desc.txt').'</a><br/>'.PHP_EOL; >>>> >>>> so, if the file '/elite/desc.txt' contains the line >>>> >>>> *82nd Airbourne - We are an elite unit of army Paratroopers >>>> * >>>> >>>> Then that element in the list would appear as: >>>> >>>> * 82nd Airbourne -We are an elite unit of army Paratroopers >>>> >>>> And would be clickable. Let's try it and see if this hound hunts. >>>> >>>> Matt Graham wrote: >>>>> >>>>> From: Kirk Bailey <kbai...@howlermonkey.net> >>>>> >>>>>> OK, now here's a giggle; I like ssi includes. If I put the script >>>>>> in as an ssi include, will it still work? >>>>>> >>>>> >>>>> If you're using Apache, and you do >>>>> >>>>> <!--#include virtual="something.php" --> >>>>> >>>>> ...the PHP in something.php will execute and produce output, but >>>>> something.php will not have any access to $_GET or $_POST or $_SESSION >>>>> or any >>>>> of those things. This is generally not what you want. If you do >>>>> >>>>> <?php include("something.php"); ?> >>>>> >>>>> ...then something.php will be able to see and work with the >>>>> superglobals that >>>>> have been set up further up the page, which is *usually* what you want. >>>>> You >>>>> could try both approaches in a test env and see what you get. I'll use >>>>> SSI >>>>> for "dumb" blocks of text and php include for "smart" blocks of code, >>>>> because >>>>> IME that tends to produce fewer instances of gross stupidity. >>>>> >>>>> Note that YMMV on all this and ICBW. >>>>> >>>>> >>>> >>> >>> -- >>> end >>> >>> Very Truly yours, >>> - Kirk Bailey, >>> Largo Florida >>> >>> kniht +-----+ >>> | BOX | +-----+ think >> >> > > -- > end > > Very Truly yours, > - Kirk Bailey, > Largo Florida > > kniht +-----+ > | BOX | +-----+ think >
You don't need to echo the include statement. Just use include Unless your include looks like ... <?php return something..... In which case, you can assign the result or echo it. See example 5 on http://docs.php.net/manual/en/function.include.php -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php