473,387 Members | 1,440 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Can't Escape

Hi all,

I'm trying to do something simple and grabbed a snippet from the php
manual for reading files in a directory. The snippet echos out a nice
list of files.
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
echo "filename: " . $file . "<br />";
}
closedir($dir);
?>

So with my very limited PHP skillset I am trying to concatente the
$file variable in an image tag. I can't seem to escape this the right
way. I've done some cutting and pasting and commenting trying to
figure this out. (keep the laughing down. :)

<?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";
//Works
echo "<br>";
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
// Below Works---Shows the filename like DSC01351.jpg
echo "filename: " . $file;
//NOT - shows the little blue question mark box
echo "<img src=" . $file . ">";
//NOT - shows the little blue question mark box
echo "<img src=\".$file.\">";

}
closedir($dir);
?>

Just amazingly frustrated with something that is so simple. I'v tried a
lot of ways to escape the quotes in the img tag but can't mahe it work.
left a couple of example...

Any help would be greatly appreciated.

TIA!

Sep 11 '07 #1
10 1889
Confused but working on it <Po**********@wherever.comwrote in
news:2007091114413816807-PostInGroups@wherevercom:
Hi all,

I'm trying to do something simple and grabbed a snippet from the php
manual for reading files in a directory. The snippet echos out a nice
list of files.
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
echo "filename: " . $file . "<br />";
}
closedir($dir);
?>

So with my very limited PHP skillset I am trying to concatente the
$file variable in an image tag. I can't seem to escape this the right
way. I've done some cutting and pasting and commenting trying to
figure this out. (keep the laughing down. :)

<?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";
This means: show an image, the source of which is at the top of the
server. Perhaps you should put the entire path to the image, relative
to where your PHP script is being called from.

echo "<img src=\"path/to/my/image/DSC01351.jpg\">";

//List files in images directory
while (($file = readdir($dir)) !== false)
{
// Below Works---Shows the filename like DSC01351.jpg
echo "filename: " . $file;
//NOT - shows the little blue question mark box
echo "<img src=" . $file . ">";
//NOT - shows the little blue question mark box
echo "<img src=\".$file.\">";

}
closedir($dir);
?>
according to your script, the images are located in the directory
"images". therefore, you need the directory name in addition to the
image name. should be:

echo "<img src=\"images/".$file."\" alt=\"my image\">";

etc


>
Just amazingly frustrated with something that is so simple. I'v tried
a
lot of ways to escape the quotes in the img tag but can't mahe it
work.
left a couple of example...

Any help would be greatly appreciated.

TIA!

Sep 11 '07 #2
..oO(Good Man)
>Confused but working on it <Po**********@wherever.comwrote in
news:2007091114413816807-PostInGroups@wherevercom:
><?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";

This means: show an image, the source of which is at the top of the
server. Perhaps you should put the entire path to the image, relative
to where your PHP script is being called from.

echo "<img src=\"path/to/my/image/DSC01351.jpg\">";
Additionally HTML also allows single quotes, which avoids the ugly
escaping:

echo "<img src='path/to/my/image/DSC01351.jpg'>";
>according to your script, the images are located in the directory
"images". therefore, you need the directory name in addition to the
image name. should be:

echo "<img src=\"images/".$file."\" alt=\"my image\">";
echo "<img src='images/$file' alt='my image'>";

I find that much more readable.

Micha
Sep 11 '07 #3
"Confused but working on it" <Po**********@wherever.comwrote in message
news:2007091114413816807-PostInGroups@wherevercom...
Hi all,

I'm trying to do something simple and grabbed a snippet from the php
manual for reading files in a directory. The snippet echos out a nice list
of files.
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
echo "filename: " . $file . "<br />";
}
closedir($dir);
?>

So with my very limited PHP skillset I am trying to concatente the $file
variable in an image tag. I can't seem to escape this the right way. I've
done some cutting and pasting and commenting trying to figure this out.
(keep the laughing down. :)

<?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";
//Works
echo "<br>";
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
// Below Works---Shows the filename like DSC01351.jpg
echo "filename: " . $file;
//NOT - shows the little blue question mark box
echo "<img src=" . $file . ">";
//NOT - shows the little blue question mark box
echo "<img src=\".$file.\">";

}
closedir($dir);
?>

Just amazingly frustrated with something that is so simple. I'v tried a
lot of ways to escape the quotes in the img tag but can't mahe it work.
left a couple of example...

Any help would be greatly appreciated.

TIA!
Hi Confused,
well you've certainly circled all around it !

First, a basic error,
You've listed the files in a particular directory but neglected to tell the
HTML image tag what the directory name is !

Second, not really an error, but you can nest single quotes inside double
quotes to avoid all the confusing escaping.
Try This
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false) {
echo "<img SRC='images/".$file."'><br />";
echo "filename: " . $file . "<br />";
}
closedir($dir);
?>
note the SRC attribute is in single quotes with the double quotes
encapsulating the srings.

Cheers

Ron
Sep 11 '07 #4
On 2007-09-11 14:50:53 -0700, Michael Fesser <ne*****@gmx.desaid:
.oO(Good Man)
>Confused but working on it <Po**********@wherever.comwrote in
news:2007091114413816807-PostInGroups@wherevercom:
>><?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";

This means: show an image, the source of which is at the top of the
server. Perhaps you should put the entire path to the image, relative
to where your PHP script is being called from.

echo "<img src=\"path/to/my/image/DSC01351.jpg\">";

Additionally HTML also allows single quotes, which avoids the ugly
escaping:

echo "<img src='path/to/my/image/DSC01351.jpg'>";
>according to your script, the images are located in the directory
"images". therefore, you need the directory name in addition to the
image name. should be:

echo "<img src=\"images/".$file."\" alt=\"my image\">";

echo "<img src='images/$file' alt='my image'>";

I find that much more readable.

Micha
Wow, Thanks!
I didn't even think to try adding the images/ part to the line. Figured
it was outputting the filename so...

Mixing single and double quotes in the case eliminates the need to
escape I take it.

Now it appears I have files named "." and "..", well, back to the manual...

Thanks again

Sep 11 '07 #5
..oO(Confused but working on it)
>Now it appears I have files named "." and "..", well, back to the manual...
readdir() returns _all_ directory entries, normal files and other
directories. You can use is_file() or is_dir() to filter out the
unwanted. See the manual for details and examples.

Micha
Sep 11 '07 #6
"Confused but working on it" <Po**********@wherever.comwrote in message
news:2007091115023216807-PostInGroups@wherevercom...
On 2007-09-11 14:50:53 -0700, Michael Fesser <ne*****@gmx.desaid:
>.oO(Good Man)
>>Confused but working on it <Po**********@wherever.comwrote in
news:2007091114413816807-PostInGroups@wherevercom:

<?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";

This means: show an image, the source of which is at the top of the
server. Perhaps you should put the entire path to the image, relative
to where your PHP script is being called from.

echo "<img src=\"path/to/my/image/DSC01351.jpg\">";

Additionally HTML also allows single quotes, which avoids the ugly
escaping:

echo "<img src='path/to/my/image/DSC01351.jpg'>";
>>according to your script, the images are located in the directory
"images". therefore, you need the directory name in addition to the
image name. should be:

echo "<img src=\"images/".$file."\" alt=\"my image\">";

echo "<img src='images/$file' alt='my image'>";

I find that much more readable.

Micha

Wow, Thanks!
I didn't even think to try adding the images/ part to the line. Figured it
was outputting the filename so...

Mixing single and double quotes in the case eliminates the need to escape
I take it.

Now it appears I have files named "." and "..", well, back to the
manual...

Thanks again
.. refers to the current directory, and .. refers to its parent - its an
Operating System thing.

Cheers

Ron

Sep 11 '07 #7
On 2007-09-11 15:12:16 -0700, Michael Fesser <ne*****@gmx.desaid:
.oO(Confused but working on it)
>Now it appears I have files named "." and "..", well, back to the manual...

readdir() returns _all_ directory entries, normal files and other
directories. You can use is_file() or is_dir() to filter out the
unwanted. See the manual for details and examples.

Micha
Great leads, thanks

Sep 11 '07 #8
On 2007-09-11 16:19:12 -0700, "Ron Barnett" <No@Spam.Thankssaid:
"Confused but working on it" <Po**********@wherever.comwrote in
message news:2007091115023216807-PostInGroups@wherevercom...
>On 2007-09-11 14:50:53 -0700, Michael Fesser <ne*****@gmx.desaid:
>>.oO(Good Man)

Confused but working on it <Po**********@wherever.comwrote in
news:2007091114413816807-PostInGroups@wherevercom:

<?php
//NOT WORKING - shows the little blue question mark box
echo "<img src = \"/DSC01351.jpg\">";

This means: show an image, the source of which is at the top of the
server. Perhaps you should put the entire path to the image, relative
to where your PHP script is being called from.

echo "<img src=\"path/to/my/image/DSC01351.jpg\">";

Additionally HTML also allows single quotes, which avoids the ugly
escaping:

echo "<img src='path/to/my/image/DSC01351.jpg'>";

according to your script, the images are located in the directory
"images". therefore, you need the directory name in addition to the
image name. should be:

echo "<img src=\"images/".$file."\" alt=\"my image\">";

echo "<img src='images/$file' alt='my image'>";

I find that much more readable.

Micha

Wow, Thanks!
I didn't even think to try adding the images/ part to the line. Figured
it was outputting the filename so...

Mixing single and double quotes in the case eliminates the need to
escape I take it.

Now it appears I have files named "." and "..", well, back to the manual...

Thanks again

. refers to the current directory, and .. refers to its parent - its an
Operating System thing.

Cheers

Ron
Teah I scarcely remember taking that Unix class at Deanza College.
Should have saved my notes but most likely not relevant anyway. :)

Sep 11 '07 #9
On 2007-09-11 15:12:16 -0700, Michael Fesser <ne*****@gmx.desaid:
.oO(Confused but working on it)
>Now it appears I have files named "." and "..", well, back to the manual...

readdir() returns _all_ directory entries, normal files and other
directories. You can use is_file() or is_dir() to filter out the
unwanted. See the manual for details and examples.

Micha
I got this from the manual:

<?php
var_dump(is_dir('a_file.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";

var_dump(is_dir('..')); //one dir up
?>
The above example will output:
bool(false)
bool(false)
bool(true)

Don't think I need the var dump part. Below I inserted where I think
the test should go. Basically read from the directory, test to see if
it's a dir, if a dir get the next $file, if not echo. I don't think I
can replace the readdir with the is_dir because the first two items ARE
directories so I can't tell it to stop if it sees a dir.
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
// Test for file or directory with is_dir like if $file is a directory
get the next $file.
echo "<img src='images/$file'>";
}
closedir($dir);
?>

I didn't see any very simple examples of get me everything that is a
".jpg" type of thing which would work too.

Time for some sleep. :)

Sep 12 '07 #10
Confused but working on it wrote:
On 2007-09-11 15:12:16 -0700, Michael Fesser <ne*****@gmx.desaid:
>.oO(Confused but working on it)
>>Now it appears I have files named "." and "..", well, back to the
manual...

readdir() returns _all_ directory entries, normal files and other
directories. You can use is_file() or is_dir() to filter out the
unwanted. See the manual for details and examples.

Micha

I got this from the manual:

<?php
var_dump(is_dir('a_file.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";

var_dump(is_dir('..')); //one dir up
?>
The above example will output:
bool(false)
bool(false)
bool(true)

Don't think I need the var dump part.
No, that's showing how is_dir works, not necessarily "live code".
Below I inserted where I think the
test should go. Basically read from the directory, test to see if it's a
dir, if a dir get the next $file, if not echo. I don't think I can
replace the readdir with the is_dir because the first two items ARE
directories so I can't tell it to stop if it sees a dir.
<?php
//Open images directory
$dir = opendir("images");
//List files in images directory
while (($file = readdir($dir)) !== false)
{
// Test for file or directory with is_dir like if $file is a
directory get the next $file.
echo "<img src='images/$file'>";
}
closedir($dir);
?>

I didn't see any very simple examples of get me everything that is a
".jpg" type of thing which would work too.

Time for some sleep. :)
And you won't find examples for everything you want to do. There are
too many possibilities. You need to get familiar with the language and
function calls so you can look up what you need. I find having a local
copy of the PHP doc (as a windows help file) is quite useful.

To get a file extension, check out
http://us2.php.net/manual/en/function.pathinfo.php

Then you can compare on the extension. Just a warning - if the files
are uploaded by users, don't depend on the extension being correct.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Sep 12 '07 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Binny V A | last post by:
Hello Everyone, I am new to python and I am trying to get a program to close a application when the Escape Key is pressed. This is the code that I used ---------------------------------...
7
by: Leif B. Kristensen | last post by:
I'm working with a Python program to insert / update textual data into a PostgreSQL database. The text has single and double quotes in it, and I wonder: What is the easiest way to escape quotes in...
1
by: JigMan | last post by:
When chucking data in a cookie you cannot use certain characters (in this example ‘ : ‘ ). To get around this you use escape and unescape. Trying to use the escape as such: ...
7
by: N U | last post by:
How to program your own escape sequence using basic functions available in C?
6
by: ern | last post by:
printf("C:\myfile.txt"); prints as C:myfile.txt How do I specify string literal ?
6
by: scottyman | last post by:
I can't make this script work properly. I've gone as far as I can with it and the rest is out of my ability. I can do some html editing but I'm lost in the Java world. The script at the bottom of...
131
by: Lawrence D'Oliveiro | last post by:
The "escape" function in the "cgi" module escapes characters with special meanings in HTML. The ones that need escaping are '<', '&' and '"'. However, cgi.escape only escapes the quote character if...
3
by: qilin | last post by:
I am trying to save a big text string into MySQL, but I guess i need escape the string firstly, anybody knows any escape function in c for that? or any other suggests ?
5
by: vlsidesign | last post by:
The printf function returns "warning: unknown escape sequence: \040" for a backslash-space combination. If the ascii decimal number for space is 32 and the backslash is 92, why this particular...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.