TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 12-22-2009, 12:00 AM   #1 (permalink)
The Contributor
 
SaintIsaiah's Avatar
 
Join Date: Jan 2009
Posts: 48
Thanks: 5
SaintIsaiah is on a distinguished road
Default Using preg_replace to write image html with lightbox?

A year or so ago I used preg_replace to grab some html for an image and rewrite it so it would have 'rel="lightbox"' in it to use lightbox. But I cant remember how to write it.

How would I write it to grab each <img /> tag to just include 'rel="lightbox"'after the src="".

basically transforming each...

Code:
<img src="urladdress" />
into this...

Code:
<img src="urladdress" rel="lightbox" />
I read the php.net page on preg_replace but I didn't understand.

Any help is appreciated!
SaintIsaiah is offline  
Reply With Quote
Old 12-23-2009, 01:16 AM   #2 (permalink)
is cute and cuddly
 
delayedinsanity's Avatar
 
Join Date: Mar 2008
Location: Vegas, Baby
Posts: 963
Thanks: 31
delayedinsanity is on a distinguished road
Default

php Code:
header( "Content-type: text/plain" );

function add_lightbox( $ret ) {
    return preg_replace( '~(<a[^>]+)>([^<]+</a>)~', '$1 rel="lightbox">$2', $ret );
}

echo add_lightbox( '<a href="http://domain.tld/test/">test</a>' );

Note that this does not check for the existence of an existing rel attribute - it only adds one. But it should get you started down the right path to figuring that out. ;)
delayedinsanity is offline  
Reply With Quote
Old 12-23-2009, 01:30 AM   #3 (permalink)
The Addict
 
Join Date: May 2009
Posts: 287
Thanks: 5
adamdecaf is on a distinguished road
Default

Just a site note: If you want to do this client side than something like this should work.

The advantage to using JavaScript is that you will save some processing time. It will still work because jQuery checks the element when it's clicked, so unless the user instantly clicks the image it (the page) may "load faster".

The downside is that older browsers will take a long time to process through a lot of image elements (10-15+).

javascript Code:
function set_lightboxes() {
   var image_elements = document.getElementsByTagName('img');
   var n, count = image_elements.length;

   for (n = 0; n < count; n++) {
      image_elements[n].rel = 'lightbox';
   }
   return;
}

window.onload = function () {
   set_lightboxes();
}
__________________
My Site
adamdecaf is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create a gallery class Tanax Advanced PHP Programming 25 02-19-2013 04:25 AM
Exciting Stuff in HTML 5! Wildhoney XHTML, HTML, CSS 20 02-17-2013 03:16 PM
Image Reflections in PHP Rendair Advanced PHP Programming 17 11-30-2011 08:41 AM
Write Image in PDF through php script dhaval General 7 09-17-2009 03:46 PM
The Big GD Guide - Part 2 Rendair Advanced PHP Programming 3 03-07-2008 12:14 AM


All times are GMT. The time now is 06:09 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design