Probleem met foto's
Hallo,
dat werkt in elke browser aangezien t niet door de brouwser gedaan word :D door met php de breedte en hoogte met getimagesize te bepalen en daaromp in te spelen door in php de tags aan te maken..
Kom er zelf niet uit namelijk!
UBB: (nog met js)
$string = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img src=\"\\1\\2\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('\\1\\2', '_blank'); return false; }\" alt=\"Indoorkarten, outdoorkarten het nieuws ervan vind je hier!\" />",$string);
$string = preg_replace("#\[img\](.+?)\[/img\]#is","<img src=\"http://\\1\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('http://\\1', '_blank'); return false; }\" alt=\"Indoorkarten, outdoorkarten het nieuws ervan vind je hier!\" />",$string);
Kun je dus getimagesize(//1) erin verwerken ofzo? Is me tot nu toe nog nooit gelukt. Kun je dat verwerken in het UBB script!?
nu kan je met $width en $height rekenen als het goed is en daarmee de breedte en hoogte bepalen die je wilt hebben.. dat kan je met een variabele aan je eigen script toevoegen.
Alvast bedankt! Dat kan ik in mijn ubb script zetten ipv wat ik had? Als dat zo is gaat het me me wel lukken. Ga er straks even naar kijken.
Ik heb nu dit:
preg_match_all("/\[img\](.*?)\[\/img\]/is", $string, $matches);
for ($i=0; $i< count($matches[0]); $i++) {
error_reporting(0);
$pic_size = getimagesize($matches[1][$i]);
if ($pic_size !='') {
list($width,$height) = $pic_size;
if($width > 590) {
$test = $width / $height;
$width = 590;
$height = $width / $test;
} else {
list($width,$height) = $pic_size;
}
}}
$string = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img width=\"".$width."\" src=\"\\1\\2\" alt=\"Plaatje\" />",$string);
$string = preg_replace("#\[img\](.+?)\[/img\]#is","<img width=\"".$width."\" src=\"http://\\1\" alt=\"Plaatje\" />",$string);
En dan krijg ik dit:
http://www.kartfanatics.nl/data/nieuws/477/
Hij pakt de width, herschrijft het naar <img src maar er komt geen plaatje te staan. Waar doe ik het fout? Ok, bedankt.
Super bedankt Crawlbackwards. Ik had het nog voor de striphtmlchars staan omdat ik bezig was met testen. Nu doet hij het! Argh never mind.
Ik dacht dat het werkte maar ook al heb ik volgens mij niets verandert hij doet het niet meer! Hij wil wel resizen maar dan resized hij alle plaatjes tegelijk...
Dan maakt hij alle plaatjes 590 breed :s *bump*
dat werkt in elke browser aangezien t niet door de brouwser gedaan word :D
Kom er zelf niet uit namelijk!
UBB: (nog met js)
$string = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img src=\"\\1\\2\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('\\1\\2', '_blank'); return false; }\" alt=\"Indoorkarten, outdoorkarten het nieuws ervan vind je hier!\" />",$string);
$string = preg_replace("#\[img\](.+?)\[/img\]#is","<img src=\"http://\\1\" border=\"0\" onload=\"if(this.width > 500) {this.width=500}\" onclick=\"if(this.width == 500) { window.open('http://\\1', '_blank'); return false; }\" alt=\"Indoorkarten, outdoorkarten het nieuws ervan vind je hier!\" />",$string);
Kun je dus getimagesize(//1) erin verwerken ofzo? Is me tot nu toe nog nooit gelukt.
Gewijzigd op 01/01/1970 01:00:00 door Shakes
haal eerst ff het adres uit de string en controleer de dimensies.. voeg daarna de breedte en hoogte toe via gewone variabelen.. ik heb nu geen tijd een voorbeeld te maken maar als er niks staat als ik weer terug ben doe ik dat alsnog wel.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
preg_match("/\[img\](http://.+)\[/img\]", $string, $subs);
list($width, $height) = getimagesize($subs);
?>
preg_match("/\[img\](http://.+)\[/img\]", $string, $subs);
list($width, $height) = getimagesize($subs);
?>
nu kan je met $width en $height rekenen als het goed is en daarmee de breedte en hoogte bepalen die je wilt hebben.. dat kan je met een variabele aan je eigen script toevoegen.
Alvast bedankt!
dat was een toevoeging.. geen vervanging..
Ik heb nu dit:
preg_match_all("/\[img\](.*?)\[\/img\]/is", $string, $matches);
for ($i=0; $i< count($matches[0]); $i++) {
error_reporting(0);
$pic_size = getimagesize($matches[1][$i]);
if ($pic_size !='') {
list($width,$height) = $pic_size;
if($width > 590) {
$test = $width / $height;
$width = 590;
$height = $width / $test;
} else {
list($width,$height) = $pic_size;
}
}}
$string = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img width=\"".$width."\" src=\"\\1\\2\" alt=\"Plaatje\" />",$string);
$string = preg_replace("#\[img\](.+?)\[/img\]#is","<img width=\"".$width."\" src=\"http://\\1\" alt=\"Plaatje\" />",$string);
En dan krijg ik dit:
http://www.kartfanatics.nl/data/nieuws/477/
Hij pakt de width, herschrijft het naar <img src maar er komt geen plaatje te staan. Waar doe ik het fout?
Super bedankt Crawlbackwards. Ik had het nog voor de striphtmlchars staan omdat ik bezig was met testen. Nu doet hij het!
Ik dacht dat het werkte maar ook al heb ik volgens mij niets verandert hij doet het niet meer! Hij wil wel resizen maar dan resized hij alle plaatjes tegelijk...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
preg_match_all("/\[img\](.*?)\[\/img\]/is", $string, $matches);
for ($i=0; $i< count($matches[0]); $i++) {
error_reporting(0);
$pic_size = getimagesize($matches[1][$i]);
if ($pic_size !='') {
list($width,$height) = $pic_size;
if($width > 590) {
$test = $width / $height;
$width = 590;
$height = $width / $test;
} else {
list($width,$height) = $pic_size;
}
}}
for ($i=0; $i< count($matches[0]); $i++) {
error_reporting(0);
$pic_size = getimagesize($matches[1][$i]);
if ($pic_size !='') {
list($width,$height) = $pic_size;
if($width > 590) {
$test = $width / $height;
$width = 590;
$height = $width / $test;
} else {
list($width,$height) = $pic_size;
}
}}
Dan maakt hij alle plaatjes 590 breed :s