Формат HTML / разметка с использованием Picasa PHP FOREACH - PullRequest
0 голосов
/ 02 марта 2012

Привет, ребята, я пытаюсь отформатировать HTML-вывод на основе этого сценария Picasa , используя foreach, таким образом:

<? foreach($albums as $photo) {?>  
<span><img src="<? echo $photo[1]; ?>" border=0></a><p><?=$photo[0]; ?></p></span> 
    <?  } ?>

Вывод:

<span><img src="foto1.jpg" border=0></a><p>This is pict 1 Album 1</p></span>
<span><img src="foto2.jpg" border=0></a><p>This is pict 2 Album 1</p></span>
<span><img src="foto3.jpg" border=0></a><p>This is pict 3 Album 1</p></span>
<span><img src="foto4.jpg" border=0></a><p>This is pict 4 Album 2</p></span> 

Но мне нужно это:

<div>
<h1>Album 1</h1>
<span><img src="foto1.jpg" border=0></a><p>This is pict 1 Album 1</p></span>
    <span><img src="foto2.jpg" border=0></a><p>This is pict 2 Album 1</p></span>
    <span><img src="foto3.jpg" border=0></a><p>This is pict 3 Album 1</p></span>
</div>
<div>
<h1>Album 2</h1>
    <span><img src="foto4.jpg" border=0></a><p>This is pict 4 Album 2</p></span> 
 </div>   

Идея состоит в том, чтобы принести все альбомы в моем аккаунте Picasa с их фотографиями внутри, например:

album 1 has:
foto1.jpg
foto2.jpg
foto3.jpg

album 2 has:
foto4.jpg

И так далее.надеюсь, что кто-нибудь сможет мне помочь и лучше понять мой действительно плохой английский:)

ПОЛНЫЙ ИСТОЧНИК:

<?php

$userid = "cramosb"; // Your Google user name

$target = "PicasaBox.php/?album="; //URL to pass the name of the album to for the links
$imgmax = "512"; 
/*------------------------------------------------------------------------------
| USER CONFIGURATION END
------------------------------------------------------------------------------*/

// *** Only modify past this point if you know what you're doing ***

$insideentry = false;
$tag = "";
$title = "";
$url = "";

// function to parse the start of an XML element
function startElement($parser, $name, $attrs) {
    global $insideentry, $tag, $title, $url;
    if ($insideentry) {
        $tag = $name;

        if ($name == "MEDIA:CONTENT"){
            $url = $attrs["URL"];
        }
    } elseif ($name == "ENTRY") {
        $insideentry = true;
    }
}

// function to parse the end of an XML element
function endElement($parser, $name) {
    global $insideentry, $tag, $title, $url, $albums;
    if ($name == "ENTRY") {
        $albums[] = array($title, $url);
        //echo $title . ' ' . $url;
        $title = "";
        $url = "";
        $insideentry = false;
    }
}

// function to parse the contents of an XML element
function characterData($parser, $data) {
    global $insideentry, $tag, $title, $url;
    if ($insideentry) {
        if ($tag == "TITLE") {
            $title .= $data;
        }
    }
}

// Lets get started... 

// Create an XML parser, using the functions above
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

// The URL of the album feed I CHANGE THIS: $feed = "http://picasaweb.google.com/data/feed/api/user/" . $userid . "?kind=album"; TO:
$feed = "http://picasaweb.google.com/data/feed/api/user/" . $userid . "?kind=photo";

// Open the feed
$fp = fopen($feed,"r")
    or die("Error reading RSS data.");

// Parse the feed
while ($data = fread($fp, 4096))
    xml_parse($xml_parser, $data, feof($fp))
        or die(sprintf("XML error: %s at line %d", 
            xml_error_string(xml_get_error_code($xml_parser)), 
            xml_get_current_line_number($xml_parser)));
// Close the feed
fclose($fp);
xml_parser_free($xml_parser); 


foreach($albums as $album)
{
    $htmlout .= '<span><a href="'. $target . $album[0] . '"><img src="' . $album[1] . '" border=0></a><p>' . $album[0] . '</p></span>';
}
print $htmlout;
exit;
?>

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

здесь, ваша домашняя работа сделана для вас

<div>
<h1>Album 1</h1>
<? foreach($albums as $photo) {?>  
<span><img src="<? echo $photo[1]; ?>" border=0></a><p><?=$photo[0]; ?></p></span> 
<?  } exit;?>
</div>
<div>
<h1>Album 2</h1>
    <span><img src="foto4.jpg" border=0></a><p>This is pict 4 Album 2</p></span> 
</div>  

обратите внимание и на другой ответ. разделение того, какой «фото» входит в какой альбом требует больше информации, это всего лишь пример с разметкой html, чтобы вы могли понять, как php подходит в миксе

0 голосов
/ 02 марта 2012

Если вы хотите разделить вывод на «альбомы», вам нужно знать, как разбить массив фотографий в зависимости от того, к какому альбому они должны принадлежать.Как вы заполняете $ фото?В каждом «альбоме» будет только 3 фотографии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...