Jump to content

Image handling help


jcran

Recommended Posts

I have a database that I need to process images from.  The database has 2 fields for images, one is the number of images the other is a link to the first image.

 

For example, if the number of images = 5 and the image link is http://www.website.com/image.jpg then the script would need to do this.

 

Show the first image from http://www.website.com/image.jpg and parse out the other 4 images like so;

 

http://www.website.com/image2.jpg

http://www.website.com/image3.jpg

http://www.website.com/image4.jpg

http://www.website.com/image4.jpg

 

The problem is, the images will be located in several different places on a different server and the image type could be .bmp, .jpeg, .gif and so on.

 

Can anyone help on this one?  Thanks, Jason

Link to comment
Share on other sites

You mean like.. you could get from the database "there are 5 images" and "the first one is something1.jpg" and you want the last 4, but they can be anywhere on the website? /dir/something2.jpg, /somethingelse/deeper/something3.bmp, /anotherplace/here/there/something4.gif, etc... or what? I'm not quite sure what you need the script to do.

Link to comment
Share on other sites

The field that has the number of images could be anywhere from 1 to 10. This field is just telling how many photos are associated with this listing.  Then, the other field is the link to the first photo.  So, if there is only 1 photo, basically nothing needs to be done.  But, if there are more than one photo, the script would need to add additional links to those photos.  The photos will always be in the same directory, for a given listing, but the name of the photo would have a _2 _3 _4 and so on, added to the end.

 

What I meant by different places is; one listing may have photos in http://www.website.com/photos/somethingelse/blahblah/photo.jpg and another listing may have photos in http://www.website.com/photos/somethingelse/anotherdirector/photo.jpg

 

The photos for each unique listing will all be in the same directory though, but will have _# added to it.

 

For example if one listing has 3 photos, the first link will read http://www.website.com/photos/somethingelse/blahblah/photo.jpg and the script will need to create the other two links to be http://www.website.com/photos/somethingelse/blahblah/photo_2.jpg and http://www.website.com/photos/somethingelse/blahblah/photo_3.jpg

 

Thank you for your response

Link to comment
Share on other sites

Thanks for clarifying, you did a great job of it.

what I'd do, is split the string at the final period (.) - see the string manipulation family of functions (http://us.php.net/strings) particularly functions such as ..

http://us.php.net/manual/en/function.strrchr.php

http://us.php.net/manual/en/function.strstr.php

http://us.php.net/manual/en/function.substr.php

http://us.php.net/manual/en/function.strrpos.php

.. of course you won't need to use all of these functions, but just telling you the ones you should use wouldn't be fun for you!

 

this will yield you

http://www.website.com/photos/somethingelse/blahblah/photo

jpg

 

As you've noticed these are the components you need for your script - the name of the file, and the file type. After this it's a simple matter of looping through the components how ever many times the script tells you to (see: for($i = 0; $i < $numPhotos; ++$i){}) and appending _num to the end of the name-of-the-file string. You can then recombining it with the file type, add it to an array of file names, and move onto the next file in the listing (if it exists). In the end you'll end up with an array of the filenames required.

 

I figured I'd give it to you in words instead of code as to not steal the fun of writing it yourself :D feel free to ask questions, we'd love to help.

Link to comment
Share on other sites

I am so new to writing php, I wouldnt know where to begin.  I am just an advanced html and pretty good css coder.  I would love to learn how to write php, but all I have ever done is cut and paste stuff and I have a pretty good understanding how it works.

 

Could you give me an idea of how to start the script, thank you so much for the help?

Link to comment
Share on other sites

<?php

 

I lol'd.

 

Anyway, here's something to get you started.... and maybe finished.

 

<?php
$numImages = 5;
$location = 'http://www.domain.com/test.jpg';

$dotLoc = strrpos($location, '.');
$file = substr($location, 0, $dotLoc);
$ext = substr($location, $dotLoc + 1);

$imgLocations = array();
for($i = 1; $i <= $numImages; ++$i) {
$tmp = $file;
if($i != 1) {
	$tmp .= "_$i";
}
$tmp .= ".$ext";

$imgLocations[] = $tmp;
}

print_r($imgLocations);
?>

 

You didn't get the fun :( but try to figure out how it works :D

Link to comment
Share on other sites

<?php
count = count of files
filename = filename
serverlist = array(server1,server2,server3)
filetypes = array(bmp,png,jpg)

for(i=0;i<count;i++){
foreach(serverlist as server){
	foreach(filetype as type){
		if(i==0)if(file_exists(server."/".filename.".".filetype)) echo server."/".filename.".".filetype)
		if(file_exists(server."/".filename.i.".".filetype)) echo server."/".filename.i.".".filetype)
	}
}
}
?>

Link to comment
Share on other sites

if u already know the types in the filename leave out the types bit and do

 

if(file_exists(server."/".ereg_replace(".", i.".", filename)) echo server."/".ereg_replace(".", i.".", filename)

 

he said he didn't :X besides, those ridiculously long lines are impossible to read :) not that they aren't impressive

if your gona do a one liner you dont need brackets and if your explaining somthing you do psudo programming cos its never gona be perfect so to just get the juist of it. thnks for saying its impressive lol i come across these problems daily im a developer full time been for 1 year got first class degree, wot bout u ?

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.