-
PHP image resize
I'm having some issues putting 2 pieces of code together
First part
I have this string
$string = "some text... <img src=myimage.jpg> some more text <img src=myimage.jpg>";
What i want to do is add width and height to those img tags and automatically reduce the image size by like 50%. I have a function that returns the image width and height in an array. For example
$resized_image = imgresize("path to image");
I then can print $resized_image[height] to get the height, and $resized_image[width] for the width.
Second part
I have a reg exp that will search for the image tag and add width and height
Code:
$pattern = "/(<img\s+).*?src=((\".*?\")|(\'.*?\')|([^\s]*)).*?>/is";
$replacement = "<img src=$2 width=$resized_image[width] height=$resized_image[height]>";
echo preg_replace($pattern, $replacement, $string);
How can i tie these 2 together? The only way i can think of is to call the array in the $replacement string, but dont know how to do so with an array
-
I would love to answer your question but it is so unclear what you are asking for..
-
sorry...
I have a database that has html content that i display on 2 different pages. In that database the content has several img tags. What i want to do is add width and height to the tag with a new size (i want to make it smaller). I have a function that will return the new size of the image in an array, and can add a fixed width and height to the img tag, but i cant get it to get the values from the function and put that in the width and height. So for example here is my code
Code:
$resized_image = imagereduction($2);
$pattern = "/(<img\s+).*?src=((\".*?\")|(\'.*?\')|([^\s]*)).*?>/is";
$replacement = "<img src=$2 width=$resized_image[width] height=$resized_image[height]>";
echo preg_replace($pattern, $replacement, $string);
I have also tried this
Code:
$pattern = "/(<img\s+).*?src=((\".*?\")|(\'.*?\')|([^\s]*)).*?>/is";
$replacement = "<img src=$2 width=imagereduction_width($2) height=imagereduction_height($2)>";
echo preg_replace($pattern, $replacement, $string);
I'm not sure where the $2 comes from, i'm guessing it has something to do with preg_replace. I knew the first one wouldnt work, but the 2nd code should, at least i would think, but i'm no expert.
Hope this is a bit clearer
-
Well there are a few things...
Assuming that imagereduction is a valid and working function already:
the $2 variable is not declared any where?
and $2 is not a valid variable in php - a variable must start with a letter..
-
I'm not sure where $2 comes from but this works, i've tested it
Code:
$pattern = "/(<img\s+).*?src=((\".*?\")|(\'.*?\')|([^\s]*)).*?>/is";
$replacement = "<img src=$2 width=50 height=50>";
echo preg_replace($pattern, $replacement, $string);
-
I dont know then, Id have to see the full code..