How do i read this image src link (php code)

Posted on 2016-08-03
Medium Priority
Last Modified: 2016-08-04
Hi there,

I am trying to modify specific icons within a moodle template that i have recently purchased. However, when inspecting the icon, i get this image source instead :

src="http://mydomain.com/theme/image.php/lambda/page/1468608429/icon" class="iconlarge activityicon" role="presentation" id="yui_3_17_2_1_1470251148074_2050"


src="http://mydomain.com/theme/image.php/lambda/core/1468608429/f/sourcecode-24" class="iconlarge activityicon" role="presentation" id="yui_3_17_2_1_1470251148074_1581"

What html/php function is being used here? How is the src being used to go inside the image.php file? and what happens within this php file? Can someone give me a direction to go and research ?
The explanation of src attribute in w3schools does not cover this kind of usage.

Help - trying to make sense of this.
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
LVL 84

Expert Comment

by:Dave Baldwin
ID: 41741229
'src' can be anything that returns the correct content.  They are may using 'image.php' to generate the 'icon' image.  If they are, that means it doesn't exist as an image until that page is called.

Author Comment

ID: 41741255
Thanks for the response. What confuses me is the lack of parameter being passed? and why wasn't this done in the css?

And what the purpose of the directory listing after the .php is for :


I am interested in duplicating this functionality, but i don't know where to start. Do you have a tutorial or material online you can point me to?
LVL 84

Expert Comment

by:Dave Baldwin
ID: 41741293
It can't be done in CSS because CSS can't generate an image.  '/lambda/page/1468608429/icon' probably tells 'image.php' what to generate.  There is not likely to be a tutorial for this since it is probably a custom function.  Unless you can find the code for 'image.php' and understand it, you probably aren't going to duplicate it.
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

LVL 111

Accepted Solution

Ray Paseur earned 1000 total points
ID: 41741447
Are you sure this is right?

Open in new window

Any chance it could be something like this?

Open in new window

If it really is the former, then you might want to look at your .htaccess file to see what it's doing with rewrite rules.  It might be extracting the lambda/page/1468608429/icon from the src= attribute and rewriting this information into URL arguments for the image.php script.

Author Comment

ID: 41742538
Hi , Thanks for the responses.

@Dave : I apologize, i don't think i am very clear on what i am confused about. I am a beginner at webdesign, and I am interested in specific functions, methods, etc that I have not seen before being used in PHP or HTML, or CSS.
I wasn't looking for specifically tutorial or information on the particular image generation function, but more on what is actually happening.

I am probably confused on something really basic. Such as, why does this link work and not give a 404 error? I have never read anything anywhere in my short life of php that says I can tag additional forward slashes after .php


I am looking for more information on, "here is how and why you can have http://mydomain.com/blabla.txt/hello.doc/something.pdf/somethingelse/work

But i don't even know where to begin. Googling the question 'forward slash after .php' kind of comes with what you'd expect : a lot of confused search results.

@Ray it is indeed the former link. Thanks for the suggestion about .htaccess . If it is an .htaccess function , then it is out of my scope of php learning at this point (since its server related), so i can simply forget about it and move on. Unfortunately, it does not seem like it is an .htaccess file - i can't find any in the installation that i did not put myself.

This guy seemed to have a similar, but reversed problem : http://stackoverflow.com/questions/28138019/page-gets-a-trailing-forward-slash-after-php

On a related note, out of curiosity i just tried loading up

"domain.com/test.php/blablablabla"  and it loaded up something from test.php (incorrectly and incomplete) instead of the normal "NOT FOUND - 404"

So i guess it is very normal for a browser to ignore .php/something and simply maybe pass an argument to the page which is not a GET function or POST.
I am looking for a page info or tutorial or the php manual page similar to  http://php.net/manual/en/reserved.variables.get.php that basically explains this behavior, and why the developer of moodle used it instead of, GET, or POST. Is it more secure? is it a replacement for the deprecated GET? or is it an undocumented behaviour of PHP , and whatever trails behind the forward slash needs to be captured or the page loads halfway?
LVL 111

Expert Comment

by:Ray Paseur
ID: 41742590

Author Comment

ID: 41743010
Hi Ray, yes it is.
I've contacted the developer, but apparently the image function is part of the moodle core.

I have found image.php online on github, its this one :


The if statement at the beginning of that code refers to the method  :
min_get_slash_argument() description

This is the actual code of that method :

This is where i am now presently stuck. Not quite sure what the reference to IIS is. Do you have an insight on what this is doing ? Or which if statement is relevant to the purpose of deciphering a forward slash trailing after .php?
LVL 84

Assisted Solution

by:Dave Baldwin
Dave Baldwin earned 1000 total points
ID: 41743116
why does this link work and not give a 404 error?
The answer is that someone has made it work.  '.htaccess' to re-format the request is probably the correct answer.  I can't give you a tutorial on something like this that as far as I know is unique to the software you are using.  

All I can tell you is that the 'src' can be any kind of link as long as it returns the proper response.  I have used PHP to return simple images and JavaScript although I never use that 'method' to attach data to the URL, just regular GETs is all I've used.

Author Comment

ID: 41743259
Hi All,

I found the .htaccess on github. I can't find it on the server itself - though i can see hidden files.

From the .htaccess :
### Firstly, if you are using Apache 2, you need the following
### three lines to allow Apache to pass a PATH_INFO variable
### correctly for URLs like http://server/file.php/arg1/arg2

<IfDefine APACHE2>
    AcceptPathInfo on

Open in new window

And from php manual on pathinfo() :

A generic explanation for PATH_INFO was then found here : http://stackoverflow.com/questions/2261951/what-exactly-is-path-info-in-php

Thanks for the suggestions, the clue indeed was inside .htaccess !

Author Closing Comment

ID: 41743260
Thanks for persisting with my convoluted question!

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
These days socially coordinated efforts have turned into a critical requirement for enterprises.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question