image width / size in php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Luc Baetsle

Luc Baetsle

12/11/2012 12:06:27
Quote Anchor link
Ik ben een newbie in PHP, heb volgend scriptje geschreven.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$dirname
= "images/2012/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img src='images/2012/$curimg' /><br>\n";
};
}
    
?>


1) Ik wil echter dat mijn jpg's kleiner op het scherm worden getoond. Hoe kan ik met width / height werken ?

2) Kan ik in $dirname een variable inbouwen zodat ik via een knop of dergelijke op de pagina kan kiezen tss 2012 en 2011 ? Zodat ik ofwel
$dirname="images/2012" ofwel $dirname="images/2011" krijg?
dus zoiets als $dirname="images/" & keuzejaar

Mvg,

Luc
 
PHP hulp

PHP hulp

05/11/2024 15:41:05
 
Chris PHP

Chris PHP

12/11/2012 12:13:44
Quote Anchor link
Verander je regel 8 naar dit.

echo "<img src='images/2012/$curimg' width='100px' height='100px' /><br>\n";

of als je CSS gebruikt

echo "<img class='small_img' src='images/2012/$curimg' /><br>\n";

En zet dan in je css

.small_img {
height: 100px;
width: 100px;
}

P.S. Verander uiteraard de 100px naar de groote die je wil.

Nog een advies, wissel je quotes om. Dus enkel ' voor echo's en dubbel " voor HTML
Gewijzigd op 12/11/2012 12:15:07 door Chris PHP
 
Roy -

Roy -

12/11/2012 12:31:46
Quote Anchor link
Zoiets?

CSS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
.afbeelding { width: 200px; }
ul { list-style: none; }
ul li { display: inline-block; }


PHP:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//Hoofd map
$dir = 'images/';

//Alle mappen verzamelen
$files = glob($dir . "*");
foreach($files as $file){
 if(is_dir($file)){
  $dirs[] = $file;
 }
}


//Geldig jaar in de url?
if($_GET['jaar']){
 if(in_array($_GET['jaar'],$dirs)){
  $jaar = $_GET['jaar'];
 }
else {
  echo 'Geen geldig jaar opgegeven!';
  exit;
 }
}


//Map = hoofdmap + jaar
if($jaar){
 $dir .= $jaar.'/';
 $files = glob($dir . "*");
}


//Afbeeldingen uit de map weergeven
foreach($files as $file){
 echo '<ul>';
 if(!is_dir($file)){
  echo '<li><img src="'.$dir.$file.'" class="afbeelding" alt=""></li>';
 }

 echo '</ul>';
}


//Menu met jaren
echo '<ul>';
foreach($dirs as $dir){
 echo '<li><a href="script.php?jaar='.$dir.'">'.$dir.'</a></li>';
}

echo '</ul>';
?>
 
Luc Baetsle

Luc Baetsle

12/11/2012 12:44:07
Quote Anchor link
Bedankt voor de snelle reactie's. Kan ik vb ook een inputveld hebben waar de gebruiker een jaartal moet ingeven, en dan rechtstreeks naar dat jaar gaat. ?

Bovenstaande krijg ik idd de images/2012 en 2013, maar als ik klik komt er niets tevoorschijn ? Wat doe ik verkeerd ? Heb php gewijzigd naar mijn paginanaam.
Gewijzigd op 12/11/2012 12:48:39 door Luc Baetsle
 
Roy -

Roy -

12/11/2012 16:53:24
Quote Anchor link
Zoiets met een dropdown menutje
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
//Menu met jaren
echo '<form method="get" action="">';
echo '<select name="jaar">';
foreach($dirs as $dir){
 echo '<option value="'.$dir.'">'.$dir.'</option>';
}

echo '</select>';
echo '<input type="submit" value="Selecteer!" />';
echo '</form>';
?>


Of als je het ze echt zelf wil laten invoeren
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//Menu met jaren
echo '<form method="get" action="">
<input type="text" name="jaar" placeholder="Jaar..." />
<input type="submit" value="Kies!" />
</form>'
;
?>


En als je klik komt er niets tevoorschijn? Als je waarop klikt?
Gewijzigd op 12/11/2012 16:53:47 door Roy -
 
Eddy E

Eddy E

12/11/2012 19:52:13
Quote Anchor link
@ Roy:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
//Alle mappen verzamelen
$files = glob($dir . "*");
foreach($files as $file){
 if(is_dir($file)){
  $dirs[] = $file;
 }
}

?>


Kan je beter gewoon DIRONLY gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
//Alle mappen verzamelen
$dirs = glob($dir . "*", DIRONLY);
?>


Zie http://nl3.php.net/glob

En als je dan toch gelijk dat jaartal erin wilt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
//Alle mappen verzamelen in het juiste jaar
$dirs = glob($dir . "*".$_GET['jaar']."*", DIRONLY);
?>




En als ik jouw stuk dan pak:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//Alle mappen verzamelen
$files = glob($dir . "*");
foreach($files as $file){
 if(is_dir($file)){
  $dirs[] = $file;
 }
}


//Geldig jaar in de url?
if($_GET['jaar']){
 if(in_array($_GET['jaar'],$dirs)){
  $jaar = $_GET['jaar'];
 }
else {
  echo 'Geen geldig jaar opgegeven!';
  exit;
 }
}


//Map = hoofdmap + jaar
if($jaar){
 $dir .= $jaar.'/';
 $files = glob($dir . "*");
}

?>


Kan dat dus dit worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
//Alle mappen verzamelen in het juiste jaar
$files = glob($dir.$_GET['jaar']."/*"); // moet mapnaam wel exact overeenkomen
?>
Gewijzigd op 12/11/2012 19:54:53 door Eddy E
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.