| About the Authors | p. xiii |
| About the Technical Reviewer | p. xv |
| Acknowledgments | p. xvii |
| Introduction | p. xix |
| Some Background Notes on Flickr, PHP, and Phlickr | p. 1 |
| What Is So Special About Flickr? | p. 1 |
| The Game That Never Ends: A Short History of Flickr | p. 2 |
| PHP Background | p. 4 |
| About Phlickr | p. 5 |
| Summary | p. 5 |
| Flickr Features | p. 7 |
| Hello, Aloha, G'day, Namaste, Hoi, Hala, Hola | p. 7 |
| Adding Photos | p. 9 |
| Photostreams and Syndication Feeds | p. 11 |
| Sharing Your Photos | p. 12 |
| Annotating Photos | p. 12 |
| Titles and Descriptions | p. 13 |
| Notes | p. 13 |
| Comments | p. 14 |
| Favorites | p. 14 |
| Recent Activity | p. 14 |
| Categorizing Photos | p. 15 |
| Tagging Photos | p. 15 |
| Sets | p. 17 |
| Groups | p. 18 |
| Using Organizr | p. 20 |
| Browsing with Organizr | p. 20 |
| Searching and Batch Operations with Organizr | p. 21 |
| Working with Sets in Organizr | p. 21 |
| Blogging with Flickr | p. 22 |
| Programming with the Flickr API | p. 24 |
| Summary | p. 25 |
| Installing Apache, PHP, and Phlickr | p. 27 |
| Installing Apache and PHP Locally | p. 27 |
| Windows | p. 27 |
| Linux | p. 35 |
| Testing Phlickr | p. 42 |
| Flickr API Keys | p. 43 |
| Authentication | p. 43 |
| Apply for a Key | p. 45 |
| Configuring Authentication | p. 45 |
| Getting an Authorization Token | p. 46 |
| Checking Your ISP's Setup | p. 48 |
| PHP | p. 48 |
| Installing Phlickr | p. 52 |
| Summary | p. 52 |
| PHP Basics for Flickr | p. 53 |
| Overview of PHP | p. 53 |
| PHP Comments | p. 55 |
| PHP Variables | p. 56 |
| PHP Data Types | p. 58 |
| Strings | p. 58 |
| Boolean | p. 60 |
| Integer | p. 60 |
| Float | p. 60 |
| Array | p. 61 |
| Object | p. 62 |
| PHP Operators | p. 63 |
| PHP Control Structures | p. 66 |
| if/elseif/else | p. 66 |
| switch/case | p. 68 |
| while and do/while | p. 69 |
| for | p. 70 |
| foreach | p. 71 |
| PHP Includes and Requires | p. 72 |
| PHP Functions | p. 72 |
| PHP Classes and Objects | p. 73 |
| Summary | p. 75 |
| Worth a Thousand Words: Working with Flickr Photos | p. 77 |
| Quick Start: A Photo on Your Web Page | p. 77 |
| Try It Out: Placing a Flickr Photo in a Web Page | p. 77 |
| How It Works | p. 79 |
| A Closer Look at the Phlickr_Photo Class | p. 80 |
| Try It Out: Accessing the Properties of a Photo | p. 80 |
| How It Works | p. 82 |
| Some Notes on the Results from the Phlickr_Photo Class | p. 82 |
| Another Way of Working with HTML | p. 86 |
| Downloading a Photo | p. 88 |
| Using the Phlickr_AuthedPhoto Class | p. 89 |
| Try It Out: Getting More Information About a Photo | p. 90 |
| How It Works | p. 92 |
| Summary | p. 92 |
| Getting Organized: Working with Flickr Photo Sets | p. 93 |
| Photo Set Basics | p. 93 |
| Try It Out: Creating a Photo Set | p. 93 |
| How It Works | p. 95 |
| Tags and Sorting | p. 95 |
| Try It Out: Creating a Set of Color-Sorted Images from Tags | p. 95 |
| How It Works | p. 97 |
| Displaying a Photo Set on an External Web Page | p. 101 |
| Try It Out: Retrieving Photo Information for a Photolog | p. 103 |
| How It Works | p. 104 |
| Try It Out: Displaying Photos in a Photolog | p. 104 |
| How It Works | p. 108 |
| Try It Out: Retrieving Photos for a Portfolio | p. 111 |
| How It Works | p. 113 |
| Try It Out: Displaying Photos in a Portfolio | p. 114 |
| How It Works | p. 116 |
| Summary | p. 119 |
| Semantic Tags and What They Mean to You: Programming with Flickr Tags | p. 121 |
| XML Overview | p. 121 |
| SimpleXML | p. 122 |
| Try It Out: Parsing XML | p. 122 |
| How It Works | p. 123 |
| Accessing Tags | p. 124 |
| Try It Out: Iterating Through Tags | p. 124 |
| How It Works | p. 127 |
| Try It Out: Getting Related Tags | p. 128 |
| How It Works | p. 130 |
| Try It Out: Getting a User's Tags | p. 131 |
| How It Works | p. 133 |
| Try It Out: Searching by Tags | p. 133 |
| How It Works | p. 136 |
| Try It Out: Changing a Tag | p. 137 |
| How It Works | p. 139 |
| Assigning Tags While Uploading | p. 140 |
| Try It Out: Uploading and Tagging Photos | p. 141 |
| How It Works | p. 143 |
| Summary | p. 145 |
| RSS Feeds and Syndication | p. 147 |
| What Is RSS? | p. 147 |
| p. 148 |
| p. 148 |
| Atom 0.3 | p. 149 |
| Atom 1.0 | p. 150 |
| Choosing a Format | p. 150 |
| What Information Does Flickr Provide as RSS Feeds? | p. 150 |
| Public Photos by User or Tag | p. 150 |
| Contact's Photos | p. 151 |
| Comments About a User's Photos | p. 151 |
| Comments Made by a User | p. 151 |
| Group Photo Pool | p. 151 |
| Group Comments | p. 151 |
| Feed Formats | p. 151 |
| Try It Out: Emailing Account Activity Updates | p. 152 |
| How It Works | p. 154 |
| Running the Script Automatically | p. 155 |
| Under Windows XP | p. 155 |
| Scheduling Under Unix and OS X | p. 156 |
| Summary | p. 157 |
| Bringing Photos Together: Adding Collaborative Features to Your Website with Flickr Groups | p. 159 |
| Creating a Group | p. 159 |
| Batch Adding Photos to a Group | p. 159 |
| Try It Out: Adding a Batch of Photos to a Group | p. 160 |
| How It Works | p. 162 |
| Adding a Tag to All the Photos in a Group | p. 163 |
| Try It Out: Adding a Tag to a Group | p. 163 |
| How It Works | p. 165 |
| Searching and Displaying the Group Photos | p. 166 |
| Try It Out: A Search Page | p. 166 |
| How It Works | p. 168 |
| Displaying a Random Image from a Group | p. 169 |
| Try It Out: A Random Photo | p. 169 |
| How It Works | p. 170 |
| Displaying Recent Posts to a Group on an External Web Page | p. 171 |
| Try It Out: Parsing an RSS Feed | p. 171 |
| How It Works | p. 172 |
| Try It Out: Displaying RSS Data | p. 173 |
| How It Works | p. 174 |
| Try It Out: A Prettier Version | p. 175 |
| How It Works | p. 178 |
| Try It Out: Latest Group Images | p. 179 |
| How It Works | p. 181 |
| Summary | p. 181 |
| Index | p. 183 |
| Table of Contents provided by Ingram. All Rights Reserved. |