Solved

Clear the cache in PHP

Posted on 2007-04-03
11
583 Views
Last Modified: 2008-02-01
Is there any way to clear cache in PHP? I have tried following codes. But they did not worked for me.

1)
    header("Cache-Control: post-check=0, pre-check=0",false);
     session_cache_limiter("must-revalidate");

2)
Header("Cache-control: private, no-cache");
Header("Expires: Mon, 26 Jun 1997 05:00:00 GMT");
Header("Pragma: no-cache");
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT");

3)
<META http-equiv="expires" content="0">

and   4)
// calc an offset of 24 hours
  $offset = 3600 * 24;      
// calc the string in GMT not localtime and add the offset
  $expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
//output the HTTP header
  Header($expire);

Please help me. Thanking in advance.

0
Comment
Question by:Web_Sight
  • 6
  • 5
11 Comments
 
LVL 29

Expert Comment

by:TeRReF
ID: 18842346
I use this set of headers which work for me:

        header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
        header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )."GMT" );
        header( "Cache-Control: no-cache, must-revalidate" );
        header( "Pragma: no-cache" );
0
 

Author Comment

by:Web_Sight
ID: 18842430
I used this.  But it did not work for me.
0
 
LVL 29

Expert Comment

by:TeRReF
ID: 18842577
What are you trying to prevent from caching? Is there a proxy involved? The above headers should prevent caching for all major browsers...
0
 

Author Comment

by:Web_Sight
ID: 18874522
My code is embedding one image into another image.  I am not getting the result properly. But the image in the source folder is the latest one.  If I refresh the page, then it is displays the correct image.I am using proxy.

Further Explanation.
page1.php contains a main image and 3 other images which can drag over the main image.  I have dragged one image and place it over the main image.  The click on next button will lead to the control to the action page (page2.php) where actual emedding occurs. Then the result page (page3.php) displays.
page3.php displays the correct image on first time.  But when I go to page1.php and then embed a second image in the main image, then click 'Next' it displays only  the old image on page3.php.  If Iclick the refresh button, page3.php will display the correct image.
0
 
LVL 29

Expert Comment

by:TeRReF
ID: 18874546
Your situation might require a different approach. A well known 'trick' is to add a unique part to the URL by generating an extra parameter. This will fool the browser, proxy, etc. in that for them it will be a different URL.

It works like this, Add something like this to the URL's that are clicked on/ redirected to:
$url = 'http://your/url/your_page.php?rnd='.time();

0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:Web_Sight
ID: 18887819
Still the problem exists. But this worked for a webpage where problem arise from macromedia flash. But it is not worked for my above issue.
0
 
LVL 29

Expert Comment

by:TeRReF
ID: 18887888
DO you save the new image after embedding and then load it again in page3.php? Can you post your display code from page3.php?
0
 

Author Comment

by:Web_Sight
ID: 18888519
Yes, new image is saving.
If I right click the property and take the URL of the image and paste it to a new browser window, I am getting the latest image.
0
 
LVL 29

Accepted Solution

by:
TeRReF earned 500 total points
ID: 18888608
Good. Well, you can use the same trick with images. Just pass a dummy parameter to the image URL and it should work:

echo '<img src="http://your/url/your_image.gif?rnd='.time().'">';
0
 

Author Comment

by:Web_Sight
ID: 18895771
THANK YOU. VERY MUCH. I have passed dummy parameters to the image URL and now it. is working nicely.
0
 
LVL 29

Expert Comment

by:TeRReF
ID: 18896033
You're welcome :)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

I've been asked to discuss some of the UX activities that I'm using with my team. Here I will share some details about how we approach UX projects.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
This video teaches users how to migrate an existing Wordpress website to a new domain.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

911 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now