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 <kbailey@xxxxxxxxxxxxxxxx>
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