webForumDet fria alternativet

Gå igenom en text och ändra bildstorlek

PHP

11 svar · 355 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

Jag har postat om det här ridigare och fått svar på det som jag frågade om då, nu har jag en ny fråga som rör samma moment men inte direkt hör ihop med den första frågan... därav ny tråd.

Problem:
Vill loopa igenom en text och ändra storlek på en bil om den är för stor... det funkar förutom att när den ändrat storleken på den första bilden så gäller samma för alla andra... oavsett deras storlek. Har ni några idéer om hur koden borde ändras?

Koden nu

<?PHP
$text = "[ IMG]url_till_bild[/ IMG]";
preg_match("'\[IMG\](.*?)\[\/IMG\]'",$text,$url);
$imageSize = getimagesize($url[1]);
if($imageSize[0]>400){
    $divideBy = ($imageSize[0]/400);
    $width = 400;
    $height = ceil($imageSize[1]/$divideBy);
}
else{
    $width = $imageSize[0];
    $height = $imageSize[1];
}
?>
Medlem sedan aug. 20002 975 inlägg
#2

Testa det här:

<?php

$text = "[ IMG]url_till_bild[/ IMG]";
preg_match_all("'\\[IMG](.*?)\\[/IMG]'i",$text,$url);

foreach ($url[0] as $key => $val) {

   $imageSize = getimagesize($url[1][$key]);

   if($imageSize[0]>400){
      $divideBy = ($imageSize[0]/400);
      $width = 400;
      $height = ceil($imageSize[1]/$divideBy);
   } else {
      $width = $imageSize[0];
      $height = $imageSize[1];
   }

   $text = preg_replace($val, "<img src=\"$url[1][$key]\" width=\"$width\" height=\"$height\">", $text); 

}

?>
Medlem sedan maj 2002647 inlägg
#3
Warning: Unknown modifier 'h' in /home/virtual/marilynmanson.se/public_html/get/textStyle.php on line 14

Line 14:

$text = preg_replace($val, "<img src=\"$url[1][$key]\" width=\"$width\" height=\"$height\">", $text);
Medlem sedan aug. 20002 975 inlägg
#4

Testa med att köra addslashes först:

$text = preg_replace(addslashes($val), ...
Medlem sedan maj 2002647 inlägg
#5

Nope... vill inte. Samma felmeddelande.

Medlem sedan aug. 20002 975 inlägg
#6

Ok. Testa det här:

foreach ($url[0] as $key => $val) {

   $imageSize = getimagesize($url[1][$key]);

   if($imageSize[0]>400){
      $divideBy = ($imageSize[0]/400);
      $width = 400;
      $height = ceil($imageSize[1]/$divideBy);
   } else {
      $width = $imageSize[0];
      $height = $imageSize[1];
   }

   $replace = "<img src=\"{$url[1][$key]}\" width=\"$width\" height=\"$height\">";
   
   $text = str_replace($val, $replace, $text); 

}
Medlem sedan maj 2002647 inlägg
#7

Ok.... det funkar om jag endast kör koden men om jag kör koden på sidan så vill den inte sätta något värde på $height och $width... några tips?

Medlem sedan aug. 20002 975 inlägg
#8

Vad är skillnaden mellan att köra koden, och köra koden på sidan ?

Kan du visa hur du försöker använda den då det inte fungerar.

Är det någon skillnad om du försöker skriva en sökväg lokalt, eller en sökväg med http:// ?

Medlem sedan maj 2002647 inlägg
#9
if(!($row['uPresentation']=="")){
			$text = $row['uPresentation'];
			require("get/textStyle.php");
			echo nl2br($text);
		}

... den finns i textStyle.php precis som den ser ut när du skrev den sist.

Och sökvägen är densamma (http//). Det som är skillnaden är väll att $text innehåller en massa mer saker... men det borde väll inte spela någon roll... eller? Förstår bara inte hur de kan bli tomma... antingen är $imageSize[0] större eller lika med/mindre än 400... bah!

Medlem sedan maj 2002647 inlägg
#10

Ok... märkte att det funkade inte på den bild jag testade med... men ett par andra funkade det med... skumt.

Medlem sedan aug. 20002 975 inlägg
#11

Anledningen till att jag frågade om 'http' är att det är inte alla servrar som tillåter att man med PHP öppnar filer på andra servrar (läs med http...).

Hittade följande i manualen

Some formats may contain no image or may contain multiple images. In these cases, getimagesize() might not be able to properly determine the image size. getimagesize() will return zero for width and height in these cases.

Vet ej vad detta innebär på t.ex jpeg-bilder med inbyggd thumbnail.

Medlem sedan maj 2002647 inlägg
#12

Märkte att det är på en alla mina jpeg bilder (på min server) men alla andra verkar det som det funkar för... kan det vara något med hur jag spara mina filer?

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)