On Dec 4, 2010, at 2:58 PM, Kirk Bailey 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' );
There should be no echo here
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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php