[PHP] Plaatjes in Arrays

Pagina: 1
Acties:
  • 170 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xato
  • Registratie: Augustus 2004
  • Laatst online: 00:25
Voor school heb ik een opdracht gekregen waarbij we elke dag een nieuwe spreuk moeten maken. Dat lukt me nog wel, maar nu wil ik ipv een stukje text een plaatje daar hebben, maar ik krijg het maar niet steeds voor elkaar. En de juf zelf snap er ook weinig van dus dat ik ook geen hulp.

Dit heb ik tot nu toe:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<title>Elke dag een nieuwe lach van de dag!</title>
<body>
<?php
$vandaag = getdate();

$maand = $vandaag['month'];
$dag = $vandaag['mday'];
$uur = $vandaag['hours'];
$weekdays = $vandaag['weekday'];
$week = array("Sunday" => "Banaan",
             "Monday" => "Appel",
             "Tuesday"=> "Sinasappel",
             "Wednesday" => "Kiwi",
             "Thursday" => "Aarbeien",
             "Friday" => "Peer",
             "Saturday" => "Mandarijn");
print("Fruit van de dag:<p></p>");
print("<b>$week[$weekdays]</b>");
?> 
<body>
</html>


Nu wil ik ipv de tekst appel een plaatje van een appel hebben, maar hoe doe je dat. (We zijn pas 2 weken bezig met PHP dus ik heb er weinig verstand van.)

Acties:
  • 0 Henk 'm!

  • Morax
  • Registratie: Mei 2002
  • Laatst online: 20:32
Als je nou in plaats van de plaatjes, de url naar de plaatjes in je array zet? :)

What do you mean I have no life? I am a gamer, I got millions!


Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Als je ipv Banaan, Appel of Sinaasappel hier gewoon in de array www.url.tld/banaan.jpg, www.url.tld/appel.jpg enz.

Vervolgens echo je dan gewoon
PHP:
1
echo"[img]$week[$weekdays]?[/img]"

dan gooi je de variable tussen image tags en kun je een plaatje laten zien.

Ik zie dat je print gebruikt, vervang dat door echo, gezien print depriciated is en dus niet echt gebruikt meer wordt.

Acties:
  • 0 Henk 'm!

  • Xato
  • Registratie: Augustus 2004
  • Laatst online: 00:25
Ik had het al zo geprobeerd:
PHP:
1
$week = array("Sunday" => "<img scr="http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg">",

Maar dan geeft die ook een foutmelding

[ Voor 14% gewijzigd door Xato op 25-09-2005 14:15 ]


Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Xato schreef op zondag 25 september 2005 @ 14:15:
Ik had het al zo geprobeerd:
PHP:
1
$week = array("Sunday" => "<img scr="http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg">",

Maar dan geeft die ook een foutmelding
welke foutmelding krijg je dan?

[edit]
ik denk al dat ik weet waar het fout gaat. de / moet je namelijk escapen zet die eens neer als '/' ipv /

[ Voor 21% gewijzigd door TERW_DAN op 25-09-2005 14:17 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je ziet al direct waar het fout gaat: PHP denkt dat bij " achter src= je string al afgelopen is. Om " niet als einde-van-de-string te maken, moet je hem escapen. Dat doe je door er een \ voor te zetten.

Het is dus ook src= ipv scr=, maar dat is geen PHP maar een HTML-probleem.

[ Voor 12% gewijzigd door GlowMouse op 25-09-2005 14:17 ]


Acties:
  • 0 Henk 'm!

  • Xato
  • Registratie: Augustus 2004
  • Laatst online: 00:25
Terw_Dan schreef op zondag 25 september 2005 @ 14:12:
Als je ipv Banaan, Appel of Sinaasappel hier gewoon in de array www.url.tld/banaan.jpg, www.url.tld/appel.jpg enz.

Vervolgens echo je dan gewoon
PHP:
1
echo"[img]$week[$weekdays]?[/img]"

dan gooi je de variable tussen image tags en kun je een plaatje laten zien.

Ik zie dat je print gebruikt, vervang dat door echo, gezien print depriciated is en dus niet echt gebruikt meer wordt.
Met deze manier is het gelukt, bedankt. Maar zit er dan een verschil tussen echo en print?

Bij deze code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<title>Elke dag een nieuwe lach van de dag!</title>
<body>
<?php
$vandaag = getdate();

$maand = $vandaag['month'];
$dag = $vandaag['mday'];
$uur = $vandaag['hours'];
$weekdays = $vandaag['weekday'];
$week = array("Sunday" => "[img]"http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg">",
                            "Monday"[/img] "Appel",
                            "Tuesday"=> "Sinasappel",
                            "Wednesday" => "Kiwi",
                            "Thursday" => "Aarbeien",
                            "Friday" => "Peer",
                            "Saturday" => "Mandarijn");
print("Fruit van de dag:<p></p>");
echo"[img]$week[$weekdays]?>";
?[/img] 
<body>
</html>


Kreeg de deze error:
Parse error: parse error, expecting `')'' in c:\phpdev\www\opdracht4a.php on line 11

[ Voor 40% gewijzigd door Xato op 25-09-2005 14:19 ]


Acties:
  • 0 Henk 'm!

  • 0fbe
  • Registratie: Januari 2004
  • Laatst online: 19:32
Vervang de aanhalingstekens voor en na de url eens door ' ipv "
zo dus:

PHP:
1
$week = array("Sunday" => '[img]"http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg"[/img]' ,

[ Voor 74% gewijzigd door 0fbe op 25-09-2005 14:25 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Xato schreef op zondag 25 september 2005 @ 14:17:
[...]
Met deze manier is het gelukt, bedankt. Maar zit er dan een verschil tussen echo en print?
Het voordeel van de manier van Terw_dan is dat je minder informatie dubbel opslaat. Dat heeft verder niks met echo <-> print te maken. Hier staan de verschillen uitgelegd.
Kreeg de deze error:
Parse error: parse error, expecting `')'' in c:\phpdev\www\opdracht4a.php on line 11
Zie mijn bericht eerder: je moet escapen.
vervang de aanhalingstekens voor en na de IMG url eens door ' ipv "
Geen idee of de HTML dan nog wel 'valid' genoeg is, maar waarom niet gewoon escapen?
Zo kan het ook. Let wel op dat wanneer je variabelen gebruikt, je ze er niet tussen kunt plakken, maar ze via concatenation toe moet voegen: $var = '$blah is '.$blah.' einde voorbeeld';

[ Voor 20% gewijzigd door GlowMouse op 25-09-2005 14:26 ]


Acties:
  • 0 Henk 'm!

  • 0fbe
  • Registratie: Januari 2004
  • Laatst online: 19:32
GlowMouse schreef op zondag 25 september 2005 @ 14:24:
Geen idee of de HTML dan nog wel 'valid' genoeg is, maar waarom niet gewoon escapen?
Niet die van de HTML maar van de PHP (zie mijn voorbeeld)

Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Xato schreef op zondag 25 september 2005 @ 14:17:
[...]


Met deze manier is het gelukt, bedankt. Maar zit er dan een verschil tussen echo en print?
Ze doen in principe hetzelfde, maar print komt uit de wat oudere versies van PHP.
Imho is het gewoon netter om gewoon het nieuwe echo te gebruiken, dan weet je ook dat het op nieuwere versies gewoon zonder probs werkt.
Bij deze code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<title>Elke dag een nieuwe lach van de dag!</title>
<body>
<?php
$vandaag = getdate();

$maand = $vandaag['month'];
$dag = $vandaag['mday'];
$uur = $vandaag['hours'];
$weekdays = $vandaag['weekday'];
$week = array("Sunday" => "[img]"http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg">",
                            "Monday"[/img] "Appel",
                            "Tuesday"=> "Sinasappel",
                            "Wednesday" => "Kiwi",
                            "Thursday" => "Aarbeien",
                            "Friday" => "Peer",
                            "Saturday" => "Mandarijn");
print("Fruit van de dag:<p></p>");
echo"[img]$week[$weekdays]?>";
?[/img] 
<body>
</html>


Kreeg de deze error:
Parse error: parse error, expecting `')'' in c:\phpdev\www\opdracht4a.php on line 11
De reden van deze error is dat je dmv // de php string onderbreekt en je hierdoor een parse error krijgt omdat het niet op een juiste manier stopt.

Dit kun je dus oplossen door of een klein stukje php tussen je HTML dmv <? ?> en daar de variabele tussen zetten, of de / escapen in je PHP door ' ' te gebruiken.

Acties:
  • 0 Henk 'm!

  • Guidance
  • Registratie: Augustus 2003
  • Laatst online: 29-08-2019
Xato,

Wellicht een idee om eerst eens wat meer informatie te vergaren over HTML, dan over bijvoorbeeld Javascript en dan met kleine stappen beginnen in PHP. Naar mijn idee neem je teveel hooi op je vork, omdat je de meest rudimentele dingen in 'scripting' cq 'programmeren' niet doorhebt.

1. Er wordt je al aangegeven dat => "<src="http:// niet werkt, vanwege het feit dat "..." als een 'literal' wordt gezien door de PHP parser (het programma dat het script omzet naar wat de bezoeker op de pagina ziet) of eenvoudiger: als string. Je PHP-string begint bij "<src dus iedere andere " moet worden 'verborgen' met \".

2. wanneer je een HTML tag schrijft eindigt deze niet op ?> dit is het PHP einde blok teken.

Dit zijn twee symptomen die aangeven dat je te snel wilt.

-begrip komt voor begrijpen.-

[ Voor 12% gewijzigd door Guidance op 25-09-2005 14:29 ]


Acties:
  • 0 Henk 'm!

  • Xato
  • Registratie: Augustus 2004
  • Laatst online: 00:25
Bedankt voor de uitleg, ik snap het al wat meer.
Dit is trouwens de uiteindelijke versie geworden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<title>Elke dag een lekker stukje fruit!</title>
<body>
<?php
$vandaag = getdate();

$maand = $vandaag['month'];
$dag = $vandaag['mday'];
$uur = $vandaag['hours'];
$weekdays = $vandaag['weekday'];
$week = array("Sunday" => "http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg",
                            "Monday" => "http://gladstone.uoregon.edu/~kstephe1/fruit/cherries.jpg",
                            "Tuesday"=> "http://www.fruitvision.nl/images/fruit-sinaasappel.gif",
                            "Wednesday" => "http://gladstone.uoregon.edu/~kstephe1/fruit/kiwi.jpg",
                            "Thursday" => "http://www.uga.edu/globalprograms/images/Peaches.JPG",
                            "Friday" => "http://palacesidehotel.co.jp/parts/green_apple.jpg",
                            "Saturday" => "http://www.foodsubs.com/Photos/pear-bartlett.jpg");
print("<b>Fruit van de dag:</b><p></p>");
echo"[img]$week[$weekdays]?>";
?[/img] 
<body>
</html>
Guidance schreef op zondag 25 september 2005 @ 14:28:
Xato,

Wellicht een idee om eerst eens wat meer informatie te vergaren over HTML, dan over bijvoorbeeld Javascript en dan met kleine stappen beginnen in PHP. Naar mijn idee neem je teveel hooi op je vork, omdat je de meest rudimentele dingen in 'scripting' cq 'programmeren' niet doorhebt.

1. Er wordt je al aangegeven dat => "<src="http:// niet werkt, vanwege het feit dat "..." als een 'literal' wordt gezien door de PHP parser (het programma dat het script omzet naar wat de bezoeker op de pagina ziet) of eenvoudiger: als string. Je PHP-string begint bij "<src dus iedere andere " moet worden 'verborgen' met \".

2. wanneer je een HTML tag schrijft eindigt deze niet op ?> dit is het PHP einde blok teken.

-begrip komt voor begrijpen.-
Dit leek mij ook handiger maar met informatica begonnen met wat HTML en daarna met een PHP, ik had ook liever de tussenstap naar Javascript gemaakt en dan pas PHP.
En dat een HTML tag niet eindigd met een ?> weet ik ook wel. ;)

[ Voor 46% gewijzigd door Xato op 25-09-2005 14:30 ]


Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 20-09 22:51
Xato schreef op zondag 25 september 2005 @ 14:28:
En dat een HTML tag niet eindigd met een ?> weet ik ook wel. ;)
Waarom sluit je daar dan je img-tag mee af? ;)

Daarnaast is hij zo niet compliant, je mist een DTD, een encoding, een alt-attribute in je img-tag en een sluit-tag (of eigenlijk /) bij je body :P

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Het is misschien handiger om de plaatjes op een eigen server te zetten, of gewoon op dezelfde server als je php bestand. Dan kan je namelijk het volgende doen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
<title>Elke dag een lekker stukje fruit!</title> 
<body> 
<?php 
$vandaag = getdate(); 

$maand = $vandaag['month']; 
$dag = $vandaag['mday']; 
$uur = $vandaag['hours']; 
$weekdays = $vandaag['weekday']; 
$week = array("Sunday" => "banaan", 
                            "Monday" => "kers", 
                            "Tuesday"=> "sinaasappel", 
                            "Wednesday" => "kiwi", 
                            "Thursday" => "perzik", 
                            "Friday" => "appel", 
                            "Saturday" => "peer"); 
print("<b>Fruit van de dag:</b><p></p>"); 
echo"[img]mapnaam/$week[$weekdays]?.jpg[/img]"; 
?>  
<body> 
</html>

My personal videoteek: -Clique-; -NMe- is een snol!


Acties:
  • 0 Henk 'm!

  • Xato
  • Registratie: Augustus 2004
  • Laatst online: 00:25
Paul Nieuwkamp schreef op zondag 25 september 2005 @ 14:58:
[...]

Waarom sluit je daar dan je img-tag mee af? ;)

Daarnaast is hij zo niet compliant, je mist een DTD, een encoding, een alt-attribute in je img-tag en een sluit-tag (of eigenlijk /) bij je body :P
Niet gezien, me gebruiken namelijk DEV-PHP2 en die doet er niet moeilijk over dus laat je dat soort fouten snel zitten.

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Xato schreef op zondag 25 september 2005 @ 16:22:
[...]
Niet gezien, me gebruiken namelijk DEV-PHP2 en die doet er niet moeilijk over dus laat je dat soort fouten snel zitten.
Het zijn niet echt PHP, maar meer HTML-fouten. Bekijk de broncode maar eens, en vergelijk dat met wat je van HTML hebt geleerd.

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Terw_Dan schreef op zondag 25 september 2005 @ 14:26:
[...]
De reden van deze error is dat je dmv // de php string onderbreekt en je hierdoor een parse error krijgt omdat het niet op een juiste manier stopt.

Dit kun je dus oplossen door of een klein stukje php tussen je HTML dmv <? ?> en daar de variabele tussen zetten, of de / escapen in je PHP door ' ' te gebruiken.
Nee, die // heeft er weinig mee te maken. Zoals je in de syntax highlighting al kunt zien wordt zijn string simpelweg afgesloten door het tweede aanhalingsteken ("). Die moet hij escapen:
PHP:
1
2
3
4
5
6
7
$week = array("Sunday" => "[img]\"http://www.planet.nl/upload_mm/b/b/d/1969840475_1999998836_banaan.jpg\">",
[/img] "Appel",
                            "Tuesday"=> "Sinasappel",
                            "Wednesday" => "Kiwi",
                            "Thursday" => "Aarbeien",
                            "Friday" => "Peer",
                            "Saturday" => "Mandarijn");

Dan gaat het wel goed. Die // geldt alleen als ze niet in een string zouden staan.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron

Pagina: 1