Var_dump werkt bij deze niet
Als die niet niet wordt gevonden, zoekt ie een afbeelding van de artiest.
Nu krijg ik het scriptje album zoeken in een aparte php WEL aan het werk, maar in het hele script niet.
Ineens returned een var_dump dan niets meer.
Kan iemand me vertellen, wat ik hier over het hoofd zie?
Code (php)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
$artist ='metallica';
$track = 'one';
//get artist photo
function getArtistPhoto($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->artist;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
//get album cover
function getAlbum($artist, $album, $size) {
// Var_dump(xml); geeft nu niets terug, maar wanneer je dit stuk in een aparte php zet wel!!
//$artist= urlencode($artist);
// $track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist=metallica&track=one&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml);
//-------------------------------------------------------------------------------------------
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml= $xml->track;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->title;
//echo instead of returning
return $album_name."<br>".$album_image."<br><br>";
}
}
function convert($file){
$parts=pathinfo($file);
//dont convert if its a jpg
if($parts['extension'] == "jpg"){
return '<img src="' . $file . '" />';
} else {
$image = imagecreatefrompng($file);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
ob_start ();
imagejpeg($bg, NULL, 80);
$image_data = ob_get_contents ();
ob_end_clean ();
$imageData = base64_encode ($image_data);
imagedestroy($image);
ImageDestroy($bg);
return '<img src="data:image/jpg;base64,'.$imageData.'" />';
}
}
//$size_map = array("small" => 0, "medium" => 1, "large" => 2, "extralarge" => 3, "mega" => 4);
if($album && $artist){
//get album cover
echo "<h2>".$artist."</h2><br><h3>".$album."</h3>";
$album_image = getAlbum($artist,$album,3);
if($album_image) {
echo $album_image."<br>";
}
} else if($artist){
//get artist photo
echo "<h2>".$artist."</h2><br>";
$artist_image = getArtistPhoto($artist,3);
if($artist_image) {
echo $artist_image."<br>";
}
} else {
echo 'geen afbeelding gevonden';
}
?>
$artist ='metallica';
$track = 'one';
//get artist photo
function getArtistPhoto($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->artist;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
//get album cover
function getAlbum($artist, $album, $size) {
// Var_dump(xml); geeft nu niets terug, maar wanneer je dit stuk in een aparte php zet wel!!
//$artist= urlencode($artist);
// $track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist=metallica&track=one&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml);
//-------------------------------------------------------------------------------------------
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml= $xml->track;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->title;
//echo instead of returning
return $album_name."<br>".$album_image."<br><br>";
}
}
function convert($file){
$parts=pathinfo($file);
//dont convert if its a jpg
if($parts['extension'] == "jpg"){
return '<img src="' . $file . '" />';
} else {
$image = imagecreatefrompng($file);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
ob_start ();
imagejpeg($bg, NULL, 80);
$image_data = ob_get_contents ();
ob_end_clean ();
$imageData = base64_encode ($image_data);
imagedestroy($image);
ImageDestroy($bg);
return '<img src="data:image/jpg;base64,'.$imageData.'" />';
}
}
//$size_map = array("small" => 0, "medium" => 1, "large" => 2, "extralarge" => 3, "mega" => 4);
if($album && $artist){
//get album cover
echo "<h2>".$artist."</h2><br><h3>".$album."</h3>";
$album_image = getAlbum($artist,$album,3);
if($album_image) {
echo $album_image."<br>";
}
} else if($artist){
//get artist photo
echo "<h2>".$artist."</h2><br>";
$artist_image = getArtistPhoto($artist,3);
if($artist_image) {
echo $artist_image."<br>";
}
} else {
echo 'geen afbeelding gevonden';
}
?>
Gewijzigd op 12/04/2014 16:24:28 door Theon Ebbers
Gewijzigd op 12/04/2014 09:54:24 door Erwin H
Alvast bedankt!
Theon Ebbers op 12/04/2014 08:26:47:
Heb een scriptje, welke van een opgegeven artiest en track, de albumafbeelding moet zoeken.
Als die niet niet wordt gevonden, zoekt ie een afbeelding van de artiest.
Als die niet niet wordt gevonden, zoekt ie een afbeelding van de artiest.
De omschrijving die je geeft klopt ook niet. Je zegt dat het script op zoek gaat als naar een afbeelding van een artiest als er geen afbeelding van een album gevonden kan worden maar het enigste dat je script doet in de if else if vanaf regel 84 is kijken of er een waarde in de variabele $album aanwezig is en daarop wordt al dan niet in de if gesprongen. Er is op dat moment nog helemaal niet geprobeerd een afbeelding in te lezen.
Begin gewoon bij het begin, vanaf de if else dus. zet daar gewoon een echo 'hij doet het!'; tussen zodat je kunt uitvinden of je script wel de lus inspringt.
Gewijzigd op 12/04/2014 10:29:15 door Frank Nietbelangrijk
Ik wilde in regel 32,33 en 34 kijken wat ik terug kreeg dmv var-dump ($xml).
Zoals ie hier staat is het resultaat NULL.
Wanneer ik diezelfde 3 regels kopieer naar een nieuw php bestandje en die uitvoer,
is het resultaat de inhoud van de xml. (waaronder de albumtitel voor $album).
Waar zit 'm dat verschil in, dat de var_dump in het script NULL returned en stand-alone
in een verder lege php wel de xml dumpt.
Misschien overbodig, maar ik script nog niet zo lang en wil eigenlijk gewoon weten waarom iets niet werkt zoals ik gedacht had, om zo de zaak beter te gaan begrijpen.
Code (php)
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
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
<?php
//get album cover
function getAlbum($artist, $album, $size) {
echo 'De functie getAlbum() wordt nu uitgevoerd'; // <=====================
// Var_dump(xml); geeft nu niets terug, maar wanneer je dit stuk in een aparte php zet wel!!
//$artist= urlencode($artist);
// $track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist=metallica&track=one&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml);
//-------------------------------------------------------------------------------------------
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml= $xml->track;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->title;
//echo instead of returning
return $album_name."<br>".$album_image."<br><br>";
}
}
?>
//get album cover
function getAlbum($artist, $album, $size) {
echo 'De functie getAlbum() wordt nu uitgevoerd'; // <=====================
// Var_dump(xml); geeft nu niets terug, maar wanneer je dit stuk in een aparte php zet wel!!
//$artist= urlencode($artist);
// $track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist=metallica&track=one&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml);
//-------------------------------------------------------------------------------------------
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml= $xml->track;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->title;
//echo instead of returning
return $album_name."<br>".$album_image."<br><br>";
}
}
?>
Gewijzigd op 12/04/2014 17:02:15 door Frank Nietbelangrijk
Toevoeging op 12/04/2014 17:38:06:
Wanneer ik dit "handmatig" intyp:
$artist = 'metallica';
$track = 'one';
$album = '...and justice for all';
krijg ik dit terug:
metallica
...and justice for all
De functie getAlbum() wordt nu uitgevoerd
m.a.w. de functie aanroep op regel 88 wordt niet uitgevoerd omdat er niet aan de voorwaarden van de if op regel 84 voldaan wordt.
In regel 9 en 28 krijg ik WEL een var_dump($xml),
Bij regel 52 en 71 NIET.
Ik denk dan: "geen 'vars' = niets om überhaupt nog iets mee te doen".
Kun je aanroepen wat je wil, als het niet bestaat kan ie er ook niets mee doen!
Of zie ik dat verkeerd.
Krijg nu wel ALLE albumcovers.....
Code (php)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?php
//get artist photo
function getArtistPhoto($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
//var_dump ($xml); hier doet ie wel dumpen
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->artist;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
//get artist albums
function getArtistAlbums($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
//var_dump ($xml); hier doet ie wel dumpen
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
//echo instead of returning
echo $album_name."<br>".$album_image."<br><br>";
}
}
//get Album title
function getAlbumtitle($artist, $track, $album){
$artist= urlencode($artist);
$track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist={$artist}&track={$track}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump ($xml);// EN HIER NIET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$album = $xml->track->album->title;
echo $album;
}
//get Album-art
function getAlbum($artist, $album, $size) {
//$album = '...and justice for all'; ( zelfs met dit zelf toevoegen, zonder te genereren)
$artist = urlencode($artist);
$album = urlencode($album);
$xml = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist={$artist}&album={$album}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml); // EN HIER OOK NIET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->album;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
// convert images to jpg
function convert($file){
$parts=pathinfo($file);
//dont convert if its a jpg
if($parts['extension'] == "jpg"){
return '<img src="' . $file . '" />';
} else {
$image = imagecreatefrompng($file);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
ob_start ();
imagejpeg($bg, NULL, 80);
$image_data = ob_get_contents ();
ob_end_clean ();
$imageData = base64_encode ($image_data);
imagedestroy($image);
ImageDestroy($bg);
return '<img src="data:image/jpg;base64,'.$imageData.'" />';
}
}
$artist = 'metallica';
$track = 'one';
//$size_map = array("small" => 0, "medium" => 1, "large" => 2, "extralarge" => 3, "mega" => 4);
if($album){
//get album cover
echo '1';
echo "<h2>".$artist."</h2><br><h3>".$album."</h3>";
$album_image = getAlbum($artist,$album,1);
if($album_image) {
echo $album_image."<br>";
}
} else if($artist){
//get artist photo
echo '2';
echo "<h2>".$artist."</h2><br>";
$artist_image = getArtistPhoto($artist,1);
if($artist_image) {
echo $artist_image."<br>";
}
getArtistAlbums($artist,1);
} else {
echo 'JAMMER jOH!';
}
?>
//get artist photo
function getArtistPhoto($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
//var_dump ($xml); hier doet ie wel dumpen
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->artist;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
//get artist albums
function getArtistAlbums($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&artist={$artist}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
//var_dump ($xml); hier doet ie wel dumpen
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
//echo instead of returning
echo $album_name."<br>".$album_image."<br><br>";
}
}
//get Album title
function getAlbumtitle($artist, $track, $album){
$artist= urlencode($artist);
$track = urlencode($track);
$xml = "http://ws.audioscrobbler.com/2.0/?method=track.getinfo&artist={$artist}&track={$track}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump ($xml);// EN HIER NIET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$album = $xml->track->album->title;
echo $album;
}
//get Album-art
function getAlbum($artist, $album, $size) {
//$album = '...and justice for all'; ( zelfs met dit zelf toevoegen, zonder te genereren)
$artist = urlencode($artist);
$album = urlencode($album);
$xml = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist={$artist}&album={$album}&api_key=8014f5ecde02dd13d154625f46da612a";
$xml = @file_get_contents($xml);
var_dump($xml); // EN HIER OOK NIET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->album;
$xml = $xml->image[$size];
$return = convert($xml);
return $return;
}
// convert images to jpg
function convert($file){
$parts=pathinfo($file);
//dont convert if its a jpg
if($parts['extension'] == "jpg"){
return '<img src="' . $file . '" />';
} else {
$image = imagecreatefrompng($file);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
ob_start ();
imagejpeg($bg, NULL, 80);
$image_data = ob_get_contents ();
ob_end_clean ();
$imageData = base64_encode ($image_data);
imagedestroy($image);
ImageDestroy($bg);
return '<img src="data:image/jpg;base64,'.$imageData.'" />';
}
}
$artist = 'metallica';
$track = 'one';
//$size_map = array("small" => 0, "medium" => 1, "large" => 2, "extralarge" => 3, "mega" => 4);
if($album){
//get album cover
echo '1';
echo "<h2>".$artist."</h2><br><h3>".$album."</h3>";
$album_image = getAlbum($artist,$album,1);
if($album_image) {
echo $album_image."<br>";
}
} else if($artist){
//get artist photo
echo '2';
echo "<h2>".$artist."</h2><br>";
$artist_image = getArtistPhoto($artist,1);
if($artist_image) {
echo $artist_image."<br>";
}
getArtistAlbums($artist,1);
} else {
echo 'JAMMER jOH!';
}
?>
getArtistPhoto en getArtistAlbums worden aangeroepen vanuit de tweede optie van je if/else constructie, getAlbum wordt aangeroepen vanuit de eerste. Aangezien je wel een artist opgeeft, maar niet een album wordt dus de tweede optie uitgevoerd en niet de eerste.
Probeerde steeds de albumtitel in een function te genereren. Die wordt, zoals al zeker 4 keer gezegd, nooit aangeroepen. Niks waard overdag werken en 's nacht scriptjes maken.
Heb nu eerst alle variabelen gedefinieerd en dan de functions laten lopen en HIJ DOET 'T.
(toch wel erg logisch eigenlijk).
Allen bedankt voor de "eye-openener".