<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Development Blog &#187; Reviews</title>
	<atom:link href="http://www.web-development-blog.com/archives/category/reviews/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.web-development-blog.com</link>
	<description>Web development tutorials, SEO articles and PHP script resources</description>
	<lastBuildDate>Wed, 25 Aug 2010 19:46:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PayPal Payment Tools: Information and Resources</title>
		<link>http://www.web-development-blog.com/archives/paypal-payment-tools-information-and-resources/</link>
		<comments>http://www.web-development-blog.com/archives/paypal-payment-tools-information-and-resources/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 14:38:00 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[credit card]]></category>
		<category><![CDATA[eBay]]></category>
		<category><![CDATA[merchant]]></category>
		<category><![CDATA[online payments]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1189</guid>
		<description><![CDATA[If you&#8217;re looking for a trustful online payment solution, you will always notice PayPal as a well known payment platform. PayPal is a full featured payment solution provider for the (paying) user and for the merchant. This article is about why people should use Paypal and some tools which makes it easier to use this [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re looking for a trustful online payment solution, you will always notice PayPal as a well known payment platform. PayPal is a full featured payment solution provider for the (paying) user and for the merchant. This article is about why people should use Paypal and some tools which makes it easier to use this payment provider.</p>

<h3>Why should you pay using PayPal?</h3>
<p><img src="http://www.web-development-blog.com/wp-content/uploads/2010/07/paypal-verified-e1280065842138.gif" alt="PayPal" title="paypal verified" width="100" height="100" class="alignleft size-full wp-image-1198" style="margin-top:10px;" />Even if you don&#8217;t have a PayPal account, you should process your credit card payment via the PayPal platform. This makes sense if you don&#8217;t know/trust the payment provider from the merchant where you want to buy something. What if this merchant doesn&#8217;t offer the PayPal option on his website? In most cases companies having a Paypal account, just ask the merchant, if he want to make a sale, he will offer this payment method as well.<br />
PayPal is also great if you don&#8217;t like to show a merchant your credit card details. In several countries it&#8217;s possible to pay by PayPal in real-time even if you need to fund your account from your bank account. PayPal is also some kind of online wallet, for example if you sell something on eBay and you get paid via PayPal. Just keep that money in your account and use it for later purchases. If you buy something on eBay and you pay via PayPal, you get some buyer protection. If the seller doesn&#8217;t send you the goods your paid for and he can&#8217;t proof the successful shipment, Paypal will refund your money.<span id="more-1189"></span></p>
<h3>PayPal features for merchants</h3>
<p>As a shop holder you should always offer PayPal payments. Using <a href="https://merchant.paypal.com/cgi-bin/marketingweb?cmd=_render-content&#038;content_ID=merchant/product_services&#038;nav=2.1" rel="nofollow">PayPal as payment option</a> on your e-commerce site enables additional payment methods: MasterCard, VISA and many other cards (depends on the buyer&#8217;s country). Since the funding methods are different for different countries, PayPal payments are the solution to offer many payment options. Some PayPal payment options for your website are:</p>
<ul>
<li><strong>Website Payments Standard</strong> &#8211; Add credit card processing to your site in about 15 minutes.<br />
Use this option if you don&#8217;t like to pay a monthly fee and if your PayPal check-out process must be simple and hosted on the PayPal website. Costs per transaction are low from 2.2% + $0.30.</li>
<li><strong>Website Payments Pro</strong> &#8211; An Internet merchant account and gateway in one.<br />
This service is similar to the products from most other payment providers and the costs are a monthly fee of $30 and the price for each transaction starts from 2.2% + $0.30.</li>
<li><strong>Payflow Payment Gateway</strong> &#8211; Process payments using your own Internet merchant account.<br />
A solution to use PayPal&#8217;s payment gateway (including PayPal payments). Note, the whole payment is processed on the PayPal site.</li>
</ul>
<p>For all these payment options is an <a href="https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&#038;content_ID=developer/e_howto_api_ButtonMgrAPIIntro" rel="nofollow">API system</a> available.</p>
<h3>Selected PayPal tools and services</h3>
<p>Most of the PayPal features require some setup or you need to add some code (or button) on your website. What if you just need to send a payment request to someone (without knowing his PayPal address or you need just a link that someone can pay you with his credit card? For Microsoft Outlook users is on the PayPal website a <a href="https://www.paypal.com/us/cgi-bin/webscr?cmd=p/sell/payment_wizard_intro-outside" rel="nofollow">plugin available</a> which acts like a kind of wizard that creates the button code you can place into your email. </p>
<blockquote><p>This wizard is a nice solution, but this button might be a problem if the html code gives the e-mail message a higher SPAM ranking.</p></blockquote>
<p><strong>SIMPAY</strong> offers functions where the <a href="http://simpay.org/">PayPal payment request</a> is created on-site in a pre-defined form and where the user can send a unique link via e-mail or an instant message system. It&#8217;s also possible to e-mail a payment request for <a href="http://simpay.org/subscription-payments.php">recurring payments</a>. </p>
<p>Another great service is <a href="http://fundrazr.com/"rel="nofollow">FundRazr</a>, they created, together with PayPal, a Facebook application which enables the user to setup a gadget that shows the &#8220;charity&#8221; and all related information. Other Facebook members will see the gadget on the wall from the fund raiser and are able to send him money via PayPal or they share the gadget on their own wall.</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/setting-up-an-internet-shopping-cart/" rel="bookmark" title="November 11, 2007">Setting up an Internet shopping cart</a></li>
<li><a href="http://www.web-development-blog.com/archives/easy-payments-using-paypal-ipn/" rel="bookmark" title="March 14, 2008">Easy payments using Paypal IPN</a></li>
<li><a href="http://www.web-development-blog.com/archives/top-your-sales-with-google-commerce-search/" rel="bookmark" title="November 29, 2009">Top your sales with Google Commerce Search</a></li>
</ul>
<p><!-- Similar Posts took 3.223 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/paypal-payment-tools-information-and-resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>E-mail marketing software, which is the best for you?</title>
		<link>http://www.web-development-blog.com/archives/e-mail-marketing-software-which-is-the-best-for-you/</link>
		<comments>http://www.web-development-blog.com/archives/e-mail-marketing-software-which-is-the-best-for-you/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 05:21:16 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[Internet Marketing]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[affiliate]]></category>
		<category><![CDATA[campaign]]></category>
		<category><![CDATA[e-mail marketing]]></category>
		<category><![CDATA[mailchimp]]></category>
		<category><![CDATA[mailing list]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1155</guid>
		<description><![CDATA[If you search Google for E-mail marketing software you will find a lot of services and I&#8217;m sure a lot of them have great features and are worth the money. The pricing for 1000 mail messages is often very similar and most of them offer a back-end which makes it easy to setup a mailing [...]]]></description>
			<content:encoded><![CDATA[<p>If you search Google for E-mail marketing software you will find a lot of services and I&#8217;m sure a lot of them have great features and are worth the money. The pricing for 1000 mail messages is often very similar and most of them offer a back-end which makes it easy to setup a mailing list and marketing campaigns. </p>
<blockquote><p>If all of them have similar features, how do choose the right one? </p></blockquote>
<h3>Some important features</h3>
<ul>
<li>Creating a mailing list takes a lot of time and might be essential for your e-mail marketing success. While collecting subscribers and sending e-mail messages, it&#8217;s important that as many messages as possible have to reach the subscribers mailbox. Bigger companies are more trusted and invest more time an money to prevent that their mail servers are getting black-listed.</li>
<li>If your list is not very big (~1000 subscriber) and you don&#8217;t have a lot of campaigns, your partner should offer pre-paid plans. If you take a monthly plan, check that the maximum amount of subscribers is not to big. </li>
<li>If you&#8217;re not able to create all the forms and templates, you need a service provider which offer these features out of the box. If you have an international list or campaigns, multiple languages should be supported.</li>
<li>A better service provider let you follow strict usage policies. If you need to create campaigns for your existing list, check if the list is fully accepted (before you start customizing forms and templates). On the other side, if the service provider accept any kind of mailing list and or campaign, it might be possible that their mail servers are black-listed frequently.</li>
<li>All services should offer double opt-in features for your subscriptions. Check if you are able to send an auto-respond message to your subscribers.</li>
</ul>
<p><span id="more-1155"></span><br />
In the past year I was able to try three of the bigger services; <strong>iContact</strong>, <strong>MailChimp</strong> and <strong>CampaignMonitor</strong>. <a href="http://www.aweber.com/" rel="nofollow">AWeber</a> looks pretty good and earns a lot of trust and I&#8217;m sure you will not waste your time if you try them as well. They don&#8217;t offer a free trial, but at the moment while I&#8217;m writing this review they offer the first month for only $1 ($19 for the following months). </p>
<h3>iContact &#8211; E-mail marketing simplified</h3>
<p><a href="http://www.dpbolvw.net/click-2408474-10640618?sid=review" target="_top" rel="nofollow"><br />
<img src="http://www.tqlkg.com/image-2408474-10640618" width="125" height="125" alt="Contact.com - Email Marketing Service " border="0" class="alignleft" /></a>I tried <a href="http://www.dpbolvw.net/click-2408474-10528631?sid=review" rel="nofollow">iContact</a> first a year ago and actually it works as they offer the service on their website. You can open a trial account to setup your mailing list and templates/forms. If you want to import a bigger list you need to pay first. They offer only monthly plans, &#8220;pay as you go&#8221; options are not possible. They have all the features like other professional companies, but it looks to me they didn&#8217;t update their control panel for the last 3 years (the WYSIWYG editor is very ugly). Every mail message I send, got the iContact branding in the footer, which you can&#8217;t remove. I have the idea that they don&#8217;t have a strong usage policy because I got NEVER complains for high percentage of un-subscriptions, high bounce rates or complains. They offer a survey function (I never tried) and they support several 3rd party plugins (WordPress, Joomla, Drupal, SalesForce&#8230;)</p>
<h3>MailChimp &#8211; Email Marketing and Email List Manager</h3>
<p><a href="http://www.mailchimp.com/" rel="nofollow">MailChimp</a> is the best service for a beginning mailing list, because they offer a free plan for lists with less than 500 subscribers. They offering great and easy to use tools for creating lists and campaigns. With a lot of 3rd party plugins (Facebook, SalesForce, Magento, Paypal and many <a href="http://www.mailchimp.com/features/extras" rel="nofollow">more</a>) they are one of the biggest email marketing partners. Using MailChimp you can go for monthly pricing or &#8220;pay as you go&#8221;. The last option is for people sending less frequently a newsletter to their members. Another features are: Custom responder messages, complete forms for your website, powerful API system (offering complete example code), Google Analytics integration, advanced reports and much <a href="http://www.mailchimp.com/features/full_list" rel="nofollow">more</a>. They have a very strict policy on abusing their system, will say don&#8217;t use them for a mailing list you have bought somewhere on the Internet. Very unique is their affiliate scheme, if someone has joined MailChimp via your affiliate link and the user has upgraded to a paid account, both parties getting a $30 bonus (new user and the affiliate). You can&#8217;t turn this bonus into cash, but maybe is an opportunity to run your (bigger) mailing list for free.</p>
<h3>CampaignMonitor &#8211; Email marketing software for web designers</h3>
<p>The first thing you will notice after free trial sign-up is that you login into some kind of reseller area. With <a href="http://www.campaignmonitor.com/" rel="nofollow">CampaignMonitor</a> it&#8217;s possible to create mailing lists completely white-label (even for the user of the back-end). Against MailChimp the back-end has less features, but you&#8217;re able to create your campaigns with custom templates or using the premium templates offered by CampaignMonitor. They offer monthly and &#8220;pay as you go&#8221; plans and their usage policy is somewhere between the one from iContact and the policy from MailChimp. While their back-end is very modern and functional, they don&#8217;t offer enough features for lists in languages other than English. If you need to setup your list in a different language, you should try the API which is powerful as well.</p>
<p>If you start a new mailing list, most of the products or services should work for you, but if you need a provider for your existing list you need to test them first.<br />
<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/running-a-mailing-list-for-increased-traffic-and-sales/" rel="bookmark" title="September 3, 2007">Running a mailing list for increased traffic and sales</a></li>
<li><a href="http://www.web-development-blog.com/archives/integrate-your-mailchimp-newsletter-subscription/" rel="bookmark" title="October 26, 2009">Integrate your MailChimp Newsletter Subscription</a></li>
<li><a href="http://www.web-development-blog.com/archives/how-to-choose-a-wordpress-hosting-provider/" rel="bookmark" title="January 24, 2010">How-to choose a WordPress Hosting Provider</a></li>
</ul>
<p><!-- Similar Posts took 3.339 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/e-mail-marketing-software-which-is-the-best-for-you/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Online Backup Service &#8211; Comparison</title>
		<link>http://www.web-development-blog.com/archives/online-backup-service-comparison/</link>
		<comments>http://www.web-development-blog.com/archives/online-backup-service-comparison/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 06:26:01 +0000</pubDate>
		<dc:creator>finalwebsites.com</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[hard-disk]]></category>
		<category><![CDATA[online backup]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[sharing]]></category>
		<category><![CDATA[Synchronization]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1123</guid>
		<description><![CDATA[For those people spending a lot of time behind a laptop or desktop PC, some safe backup storage becomes very important. Until a few few weeks ago, I created every night an incremental backup for my files and stored this data on a USB connected hard-disk. While the HD was shock-proof (FreeCom), my motherboard was [...]]]></description>
			<content:encoded><![CDATA[<p>For those people spending a lot of time behind a laptop or desktop PC, some safe backup storage becomes very important. Until a few few weeks ago, I created every night an incremental backup for my files and stored this data on a USB connected hard-disk. While the HD was shock-proof (FreeCom), my motherboard was much weaker. It seems that the motherboard died during the daily backup was processed. Why? Because my hard-disk wasn&#8217;t accessible the next day. My backup seems to be worthless and I was very happy that a replacement of the motherboard was the rescue for my data.</p>
<blockquote><p>Everyone will understand my next step: I started my search for a better backup solution!</p></blockquote>
<h3>Are online backup services the best solution?</h3>
<p>Since my laptop has the Ubuntu operating system, I gave <strong>Ubuntu One</strong> a try. They offer 2GB of free backup space and since Ubuntu version 9.10 you need only to register an online account. That sounds easy right? Just put your backup data into the <strong>Ubuntu One directory</strong> and wait until the demon has uploaded all files. They offer great features too; synchronization between multiple PCs, sharing files with trusted contacts and there is  a web browser interface. They offer also a paid plan; 50GB storage for $10/month. Not so much actually, but maybe to much for a beta service. In my case Ubuntu One wasn&#8217;t the best solution for me. Uploading files took a lot of time and the demon/client needs a restart frequently.</p>

<blockquote><p>Important: You need to trust your backup service provider!<span id="more-1123"></span></p></blockquote>
<h3>There are more professional online backup services</h3>
<p>There are many companies offering these services and they offering different packages for different needs. Since the synchronization features are very nice (think about how easy you can restore your data to a new computer) I searched  for services offering this features. A second requirement were multi-platform capabilities. The last one is very important because you never know where you need to work with your data. Maybe you need to switch from Linux to Windows or Mac. We tried the following 3 services, all of them offer 2GB of free backup space. So if you like, you can try them all for free.</p>
<h3>Mozy &#8211; Home Edition</h3>
<p><a rel="nofollow" href="http://www.kqzyfj.com/click-2408474-10446057" target="_blank"> <img class="alignleft" style="border: 0pt none; margin-right: 5px; margin-top: 15px;" src="http://www.awltovhc.com/image-2408474-10446057" border="0" alt="Unlimited Backup only $4.95" width="120" height="60" /></a>They offer unlimited space for a low monthly price: $4.95 (discounts for yearly payments are also available). Sounds great? It is, for Windows and Mac user. They backup after the first full backup only changed/new files and it&#8217;s easy to restore your data if you need that. A <a rel="nofollow" href="http://www.kqzyfj.com/click-2408474-10446057" target="_blank">Mozy backup</a> is a great &#8220;mirror&#8221; for your data, but doesn&#8217;t offer synchronization features for multiple computers. Mozy is a great solution if you have a lot of data (for example photos) and you need &#8220;only&#8221; a secure backup solution.</p>
<h3>Dropbox</h3>
<p>I&#8217;m sure most of you already know <a rel="nofollow" href="http://www.dropbox.com/">Dropbox</a>, they offer all you need: online back, synchronization and file sharing. First 2GB of space are free and 50GB of backup space are only $9.99 a month. Check these features:</p>
<ul>
<li><strong>File Sync</strong>
<ul>
<li>Sync files of any size or type.</li>
<li>Sync Windows, Mac and Linux computers.</li>
<li>Automatically syncs when new files or changes are detected.</li>
<li>Efficient sync &#8211; only the pieces of a file that changed (not the whole file) are synced.</li>
</ul>
</li>
<li><strong>File Sharing</strong>
<ul>
<li>Shared folders allow several people to collaborate on a set of files.</li>
<li>A &#8220;Public&#8221; folder that lets you link directly to files in your Dropbox.</li>
<li>Control who is able to access shared folders.</li>
<li>Automatically create shareable online photo galleries from folders of photos in your Dropbox.</li>
</ul>
</li>
<li><strong>Online Backup</strong>
<ul>
<li>Automatic backup of your files.</li>
<li>Undelete files and folders.</li>
<li>Restore previous versions of your files.</li>
<li>30 days of undo history, with unlimited undo available as a paid option.</li>
</ul>
</li>
</ul>
<p>Dropbox is a great backup service for Windows, Linux and Mac users with a lot of features. They have also a great referral system, if you refer friends you get free backup space for your (free) account. Special is also that you&#8217;re able to share single files with other people, even if they are not a Dropbox user.</p>
<h3>SpiderOak</h3>
<p>The features for <a rel="nofollow" href="https://spideroak.com/">SpiderOak</a> are almost the same compared to Dropbox, but their paid plan is much cheaper, only $10 / month for 100GB of backup space (discounts for yearly payments are also available). The service looks more safe, Encrypted (FAST) data transport and fully encrypted data storage. The company looks more professional to me, but this is only my personal opinion as an open source fanatic. They don&#8217;t offer single file sharing, but they offer file sharing functions for directories. There is <strong>one killer feature</strong> which Dropbox doesn&#8217;t have: Using Spideroak you&#8217;re able to backup/sync every directory from you hard-disk, while Dropbox has only one directory which is used for the backups.</p>
<p><br />
<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/sync-outlook-and-google-apps-on-your-mobile-phone/" rel="bookmark" title="May 13, 2010">Sync Outlook and Google Apps on your mobile phone</a></li>
<li><a href="http://www.web-development-blog.com/archives/tutorial-create-a-zip-file-from-folders-on-the-fly/" rel="bookmark" title="September 24, 2007">Tutorial: Create a zip file from folders on the fly</a></li>
<li><a href="http://www.web-development-blog.com/archives/create-custom-website-backups-using-cron/" rel="bookmark" title="October 17, 2009">Create custom website backups using CRON</a></li>
</ul>
<p><!-- Similar Posts took 3.280 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/online-backup-service-comparison/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Create PDF documents Online with TCPDF</title>
		<link>http://www.web-development-blog.com/archives/create-pdf-documents-online-with-tcpdf/</link>
		<comments>http://www.web-development-blog.com/archives/create-pdf-documents-online-with-tcpdf/#comments</comments>
		<pubDate>Thu, 27 May 2010 17:50:26 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[PHP scripts]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[invoice]]></category>
		<category><![CDATA[methods]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[php class]]></category>
		<category><![CDATA[tcpdf]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1098</guid>
		<description><![CDATA[Many web applications using PDF documents for invoices, contracts and many other doc types. There are a few PHP classes which are able to create PDF documents online, one of them is TCPDF. This tutorial is about how-to use the TCPDF class while creating a simple invoice document. If you like to take a sneak [...]]]></description>
			<content:encoded><![CDATA[<p>Many web applications using PDF documents for invoices, contracts and many other doc types. There are a few PHP classes which are able to create PDF documents online, one of them is TCPDF. This tutorial is about how-to use the TCPDF class while creating a simple invoice document. If you like to take a sneak peak on the result, check this website which generates the <a href="http://www.pdffacturatie.nl/">PDF Invoice</a> document on the fly.</p>
<h3>Why TCPDF and not some other PHP class?</h3>
<p><a href="http://www.tcpdf.org/" rel="nofollow">TCPDF</a> is based on the <a href="http://fpdf.org/" rel="nofollow">FPDF</a> class, a very stable project written for PHP4. Since several years has TCPDF much more features than FPDF and is written for PHP5 (there is also a PHP4 version). The TCPDF has also some great <a href="http://www.tecnick.com/pagefiles/tcpdf/doc/com-tecnick-tcpdf/TCPDF.html" rel="nofollow">documentation</a> and of course examples for all important PDF jobs like:<br />
WriteHTML and RTL support, Multiple columns, JavaScript and Forms, Bookmarks (Table of Content), Multicell complex alignment, Barcodes, Set PDF viewer display preferences, EPS/AI vectorial images and many <a href="http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_examples" rel="nofollow">more</a>.</p>
<h3>The Zend Framework has some PDF class too&#8230;</h3>
<p>Yes right, the first plan was to write this tutorial about the Zend Framework, but after writing a few rows of code I&#8217;ve noticed that the <a href="http://framework.zend.com/manual/en/zend.pdf.html" rel="nofollow">PDF Class</a> is missing some important functions, like the <strong>MultiCell</strong>, which is used to wrap multiple rows of text. It&#8217;s a <strong>required</strong> function which was suggested as the <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Pdf_Cell+-+Logan+Buesching" rel="nofollow">Zend_Pdf_Cell</a> 2 years ago and didn&#8217;t find the way to the core version until now. I like the Zend Framework a lot but<span id="more-1098"></span> not for creating PDF documents, the PDF class is much too limited. <img src='http://www.web-development-blog.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<h3>Okay let&#8217;s start the tutorial:</h3>
<p>In this tutorial we create a PDF invoice including header logo, the invoice rows, an information box and some footer row.<br />
In our code we include some PHP files, next we&#8217;ve created a small class extension to have a custom header/footer and some handy method which creates a text box.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tcpdf/config/lang/eng.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'tcpdf/tcpdf.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> MYPDF <span style="color: #000000; font-weight: bold;">extends</span> TCPDF <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">Header</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setJPEGQuality</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Image</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'logo.png'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'PNG'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://www.finalwebsites.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Footer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetY</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetFont</span><span style="color: #009900;">&#40;</span>PDF_FONT_NAME_MAIN<span style="color: #339933;">,</span> <span style="color: #0000ff;">'I'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Cell</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'finalwebsites.com - PHP Script Resource, PHP classes and code for web developer'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'C'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> CreateTextBox<span style="color: #009900;">&#40;</span><span style="color: #000088;">$textval</span><span style="color: #339933;">,</span> <span style="color: #000088;">$x</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y</span><span style="color: #339933;">,</span> <span style="color: #000088;">$width</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fontsize</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fontstyle</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$align</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'L'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetXY</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$x</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #000088;">$y</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 20 = margin left</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetFont</span><span style="color: #009900;">&#40;</span>PDF_FONT_NAME_MAIN<span style="color: #339933;">,</span> <span style="color: #000088;">$fontstyle</span><span style="color: #339933;">,</span> <span style="color: #000088;">$fontsize</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Cell</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #339933;">,</span> <span style="color: #000088;">$textval</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$align</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The <strong>header</strong> method has only two functions, one sets the image quality and the second will place an image (including hyperlink) on a defined place (x=120, Y=10, width=75). All coordinates are measured in Millimeters and the height for the image is calculated by the script. Inside the footer method we&#8217;re using some basic TCPDF methods to define the position, the font/style and the cell with the footer text. The third method (CreateTextBox) is just a group of TCPDF functions which makes it easier to place some text box into the PDF document. Note, the constant variable <strong>PDF_FONT_NAME_MAIN</strong> is defined inside the TCPDF config file, which is located inside the <strong>config</strong> directory.</p>
<h3>The invoice header</h3>
<p>The following code will create a TCPDF object with default values, the PDF meta data gets defined (author, title, etc.), a page is added and the invoice header with information is created using our custom text box method.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// create a PDF object</span>
<span style="color: #000088;">$pdf</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MYPDF<span style="color: #009900;">&#40;</span>PDF_PAGE_ORIENTATION<span style="color: #339933;">,</span> PDF_UNIT<span style="color: #339933;">,</span> PDF_PAGE_FORMAT<span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'UTF-8'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// set document (meta) information</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetCreator</span><span style="color: #009900;">&#40;</span>PDF_CREATOR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetAuthor</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Olaf Lederer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TCPDF Example'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetSubject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TCPDF Tutorial'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetKeywords</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'TCPDF, PDF, example, tutorial'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// add a page</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddPage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// create address box</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Customer name Inc.'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Mr. Tom Cat'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Street address'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">65</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zip, city name'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">70</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// invoice title / number</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Invoice #201012345'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// date, order ref</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Date: '</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Y-m-d'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Order ref.: #6765765'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">105</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Invoice Rows</h3>
<p>Now we create the information about the products we like put into the PDF invoice. First we create some headers and than we use a <strong>foreach</strong> loop to output our <strong>$orders</strong> array.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// list headers</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Quantity'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'C'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Product or service'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Price'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">110</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Amount'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">140</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">120</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Line</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">129</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">195</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">129</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// some example data</span>
<span style="color: #000088;">$orders</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'quant'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'descr'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'.com domain registration'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'price'</span> <span style="color: #339933;">=&gt;</span> <span style="color:#800080;">9.95</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$orders</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'quant'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'descr'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'.net domain name renewal'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'price'</span> <span style="color: #339933;">=&gt;</span> <span style="color:#800080;">11.95</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$orders</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'quant'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'descr'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'SSL certificate 256-Byte encryption'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'price'</span> <span style="color: #339933;">=&gt;</span> <span style="color:#800080;">99.95</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$orders</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'quant'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'descr'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'25GB VPS Hosting, 200GB Bandwidth'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'price'</span> <span style="color: #339933;">=&gt;</span> <span style="color:#800080;">19.95</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$currY</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">128</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$total</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$orders</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'quant'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'C'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'descr'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'$'</span><span style="color: #339933;">.</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">110</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$amount</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'quant'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'$'</span><span style="color: #339933;">.</span><span style="color: #000088;">$amount</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">140</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$currY</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$total</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$total</span><span style="color: #339933;">+</span><span style="color: #000088;">$amount</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Line</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">195</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>After the headers and after the list of invoice items we create a line. Inside the loop, we use the variable <strong>$currY</strong> to raise the <strong>Y coordinate by 5</strong> for each new row. The row amount is calculated by PHP and also the total amount is raised inside the <strong>foreach</strong> loop.</p>
<h3>Invoice footer and information</h2>
<p>First we create a total row using the value from the variable <strong>$total</strong> we created before. After that row we have a <strong>MultiCell</strong> which can hold the payment conditions or just some other information. You can use HTML code in this cell as well, for example a link to your terms and conditions.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// output the total row</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Total'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">135</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">CreateTextBox</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'$'</span><span style="color: #339933;">.</span><span style="color: #990000;">number_format</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$total</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">140</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'B'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'R'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// some payment instructions or information</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setXY</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currY</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetFont</span><span style="color: #009900;">&#40;</span>PDF_FONT_NAME_MAIN<span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">MultiCell</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">175</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;em&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit&lt;/em&gt;. &lt;br /&gt;
Vestibulum sagittis venenatis urna, in pellentesque ipsum pulvinar eu. In nec &lt;a href=&quot;http://www.google.com/&quot;&gt;nulla libero&lt;/a&gt;, eu sagittis diam. Aenean egestas pharetra urna, et tristique metus egestas nec. Aliquam erat volutpat. Fusce pretium dapibus tellus.'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'L'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Close and output PDF document</span>
<span style="color: #000088;">$pdf</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Output</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test.pdf'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'F'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>At the end we call the output method which will safe the created PDF under the name test.pdf and sends the document to the browser.</p>
<p>This is just an example to show how easy it is to create PDF files online. Before you start your own PDF scripts, check all the <a href="http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf_examples" rel="nofollow">TCPDF examples</a> to get an idea how-to use the different methods.</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/search-for-photos-using-php-and-the-flickr-api/" rel="bookmark" title="December 19, 2009">Search for photos using PHP and the flickr API</a></li>
<li><a href="http://www.web-development-blog.com/archives/how-to-create-a-password-generator-using-php/" rel="bookmark" title="November 22, 2009">How-to create a Password Generator using PHP</a></li>
<li><a href="http://www.web-development-blog.com/archives/jquery-form-plugin-and-php-file-uploads/" rel="bookmark" title="November 2, 2009">jQuery form plugin and PHP file uploads</a></li>
</ul>
<p><!-- Similar Posts took 4.020 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/create-pdf-documents-online-with-tcpdf/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>PHP Mail Scripts using SMTP transport, a guide for beginners</title>
		<link>http://www.web-development-blog.com/archives/php-mail-scripts-using-smtp-transport-a-guide-for-beginners/</link>
		<comments>http://www.web-development-blog.com/archives/php-mail-scripts-using-smtp-transport-a-guide-for-beginners/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 09:53:26 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[PHP scripts]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[php classes]]></category>
		<category><![CDATA[phpmailer]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[swift mailer]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1049</guid>
		<description><![CDATA[PHP has a very simple mail function which is used very often for basic text mail messages. What if you need to attach files or if you need to send your e-mail messages via SMTP? Than it&#8217;s time to use a more advanced script. This is because the standard mail function has only limited standard [...]]]></description>
			<content:encoded><![CDATA[<p>PHP has a very <a href="http://www.finalwebsites.com/forums/topic/php-mail-script">simple mail function</a> which is used very often for basic text mail messages. What if you need to attach files or if you need to send your e-mail messages via SMTP? Than it&#8217;s time to use a more advanced script. This is because the standard mail function has only limited standard capabilities. There are many reasons to use SMTP transport for sending e-mail messages from your web application, some of them are:</p>
<ul>
<li>Many <a href="http://www.webfaction.com/?affiliate=finalwebsites" rel="nofollow">shared hosting providers</a> doesn&#8217;t allow to use the PHP mail() function for security reasons</li>
<li>Your web application is more flexible if you use the Simple Message Transfer Protocol (SMTP). This way your e-mail function is not limited to the servers port or e-mail configuration anymore. </li>
<li>SMTP is much more powerful and secure (using SSL)</li>
</ul>
<p>In this article we will compare three of the bigger PHP projects which allow to send e-mail messages via SMTP, including attachments. <span id="more-1049"></span></p>
<ol>
<li>The Mail class included in the <strong>Zend Framework</strong> (http://framework.zend.com/)</li>
<li><strong>Swift Mailer</strong> (http://swiftmailer.org/)</li>
<li><strong>PHPMailer</strong> (http://phpmailer.worxware.com)</li>
</ol>
<p>We reviewed these three PHP classes because they&#8217;re written for PHP5 and they are updated frequently. For our review we tried the provided examples and the documentation. We&#8217;re sure that all three classes are very powerful and offer many functions for almost every type of web application. Because this review should help the beginning PHP developer, this article is sho-case for a few functions only.</p>
<h3>Our test case for this review</h3>
<p>For our example we tested all three classes to send a plain text mail message with a single image attachment, using SMTP transport with authentication. Here is the good news; as a more experienced PHP user, I was able to use the provided examples within several minutes for each of the classes.</p>
<h3>Zend Mail Class</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'include_path'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.:/path2directory/ZendFramework/library/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/Loader.php'</span><span style="color: #339933;">;</span>
Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Mail'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Zend_Mail_Transport_Smtp'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'auth'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'login'</span><span style="color: #339933;">,</span> 
              <span style="color: #0000ff;">'username'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'smtpUser'</span><span style="color: #339933;">,</span>
              <span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'smtpPassword'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$transport</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Mail_Transport_Smtp<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smtp.server.com'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$config</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Mail<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$at</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">createAttachment</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'path/logo.png'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$at</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">filename</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'logo.png'</span><span style="color: #339933;">;</span>                                  
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBodyText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'This is the text inside the mail send by Zend_Mail using SMTP transport.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFrom</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'you@mail.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Your Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addTo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'contact@mailservice.us'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Your friend'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setSubject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Mail Subject'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$transport</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I don&#8217;t like the documentation from the Zend framework, you need to check many pages to get all the required code for the snippet above. You need to create a second object to send your message via SMTP. I&#8217;m missing the information on their site about how-to test the &#8220;send&#8221; function to create use a success or error message. Using the class is not very difficult, but installing the Zend Framework might be a hard job for the beginner. This class is a great solution for people already using the Zend Framework or where the the library is provided by the hosting provider.</p>
<h3>Swift Mailer</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Swift/lib/swift_required.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$transport</span> <span style="color: #339933;">=</span> Swift_SmtpTransport<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smtp.server.com'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setUsername</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smtpUser'</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setPassword</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smtpPassword'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$mailer</span> <span style="color: #339933;">=</span> Swift_Mailer<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$transport</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$message</span> <span style="color: #339933;">=</span> Swift_Message<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Wonderful Subject'</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFrom</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'you@mail.com'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Your Name'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setTo</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'contact@mailservice.us'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Your friend'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBody</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'This is the text of the mail send by Swift using SMTP transport.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$attachment</span> <span style="color: #339933;">=</span> Swift_Attachment<span style="color: #339933;">::</span><span style="color: #004000;">newInstance</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'path/logo.png'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'logo.png'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000088;">$message</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">attach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$attachment</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$numSent</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mailer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Sent <span style="color: #009933; font-weight: bold;">%d</span> messages<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$numSent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The snippet looks similar to the code from the Zend mail class, but you have to create 4 different objects:</p>
<ol>
<li>An object for the SMTP transport (Swift_SmtpTransport)</li>
<li>The object that will send the message (Swift_Mailer)</li>
<li>The message object for all mail parts (Swift_Message)</li>
<li>An object for the attachment (Swift_Attachment)</li>
</ol>
<p>The configuration/installation is much easier than for the Zend Framework, just include one single file and you&#8217;re ready to use the class. If you like this OOP (Object Oriented Programming) style used in this class, this script might be for you.</p>
<h3>PHPMailer</h3>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'PHPMailer5/class.phpmailer.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$mail</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PHPMailer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">IsSMTP</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Host</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'smtp.server.com'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Port</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">25</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SMTPAuth</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'smtpUser'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'smtpPassword'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetFrom</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'you@mail.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Your Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAddress</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'contact@mailservice.us'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Your friend'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Subject</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'PHPMailer Message'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Body</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'This e-mail is sent through PHPMailer.'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddAttachment</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'path/logo.png'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'logo.png'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Mailer error: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ErrorInfo</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Message has been sent.'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>The coding style from this example looks very different from the two others and some PHP developer would say this is not really OOP code. Right PHPMailer doesn&#8217;t have one file for each method and for the example above you need to upload only two files. I like the PHPMailer class because of all the information you get on the project&#8217;s website. </p>
<p>The three examples above should help you to make the decision which script will work the best for you. Check the links below for the documentation related to the snippets I have used in this artikel:</p>
<ul>
<li><a href="http://framework.zend.com/manual/en/zend.mail.html" rel="nofollow">http://framework.zend.com/manual/en/zend.mail.html</a></li>
<li><a href="http://swiftmailer.org/docs/introduction" rel="nofollow">http://swiftmailer.org/docs/introduction</a></li>
<li><a href="http://phpmailer.worxware.com/index.php?pg=examplebsmtp" rel="nofollow">http://phpmailer.worxware.com/index.php?pg=examplebsmtp</a></li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/" rel="bookmark" title="September 1, 2009">Sending e-mails via SMTP with PHPmailer and Gmail</a></li>
<li><a href="http://www.web-development-blog.com/archives/jquery-contact-form-for-your-website/" rel="bookmark" title="January 11, 2010">jQuery Contact form for your website</a></li>
<li><a href="http://www.web-development-blog.com/archives/integrate-your-mailchimp-newsletter-subscription/" rel="bookmark" title="October 26, 2009">Integrate your MailChimp Newsletter Subscription</a></li>
</ul>
<p><!-- Similar Posts took 3.917 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/php-mail-scripts-using-smtp-transport-a-guide-for-beginners/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Create surveys with Google Forms</title>
		<link>http://www.web-development-blog.com/archives/create-surveys-with-google-forms/</link>
		<comments>http://www.web-development-blog.com/archives/create-surveys-with-google-forms/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 08:52:41 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[Google services]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[spreadsheet]]></category>
		<category><![CDATA[surveys]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=1014</guid>
		<description><![CDATA[These days I needed an online tool to create a customer survey. Google Docs has a form feature which I tried this time and I was very surprised how easy and powerful this function is. Using Google forms, you don&#8217;t need any knowledge about how a web based form works. In this article we will [...]]]></description>
			<content:encoded><![CDATA[<p>These days I needed an online tool to create a customer survey. Google Docs has a form feature which I tried this time and I was very surprised how easy and powerful this function is. Using Google forms, you don&#8217;t need any knowledge about how a web based form works. In this article we will show-case the following functionality:</p>
<ul>
<li>Create a form with the WYSIWYG form editor</li>
<li>How your customers getting access to the survey</li>
<li>Analyze and and work on the results</li>
<li><strong>Optional:</strong> How-to insert your survey form in your website using a lightbox</li>
</ul>
<h3>About Google Forms and Google Docs</h3>
<p>Google Forms is part of Google Docs or better some kind of extension for Google Spreadsheets a web based spreadsheet program. To create a form using Google Docs, you need to have a Google account or a <a href="http://www.google.com/apps/intl/en/business/index.html" rel="nofollow">Google Apps</a> account. Both account types are free available. Google offers also premium services for Google applications.<br />
<span id="more-1014"></span></p>
<h3>Creating web based forms without being a webmaster</h3>
<p>If you start using Google Docs the first time, you get the idea that you&#8217;re using a similar application from the Microsoft Office suite. The menu and a lot of functions are very similar. Creating a form is very easy, you don&#8217;t need to write any code, just click some buttons and enter your text information:</p>

<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/summary.png' rel='shadowbox[album-1014];player=img;' title='Summary'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/summary-150x150.png" class="attachment-thumbnail" alt="Summary" title="Summary" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/resulttable.png' rel='shadowbox[album-1014];player=img;' title='Results'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/resulttable-150x150.png" class="attachment-thumbnail" alt="Results" title="Results" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/conformation.png' rel='shadowbox[album-1014];player=img;' title='Confirmation Screen'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/conformation-150x150.png" class="attachment-thumbnail" alt="Confirmation Screen" title="Confirmation Screen" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/editform.png' rel='shadowbox[album-1014];player=img;' title='Edit form'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/editform-150x150.png" class="attachment-thumbnail" alt="Edit form" title="Edit form" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/datatypes.png' rel='shadowbox[album-1014];player=img;' title='Form elements'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/datatypes-150x150.png" class="attachment-thumbnail" alt="Form elements" title="Form elements" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/04/themes.png' rel='shadowbox[album-1014];player=img;' title='Themes for Google Forms'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/04/themes-150x150.png" class="attachment-thumbnail" alt="Themes for Google Forms" title="Themes for Google Forms" /></a>

<p>Using Google Docs, you can build forms with all form elements you need: text fields, text areas, check boxes, radio buttons, select lists. Create forms with multiple pages and describe each page and/or form element with the information you like. There are also basic validations for required fields.<br />
Every element has clear and easy to use dialogs. Based on the language you&#8217;re using in Google Docs, you can create forms in most common languages. If your form is ready, you can choose from many fancy themes or if you don&#8217;t like them use plain theme type.</p>
<h3>How-to send the survey to your customers?</h3>
<p>Each Google Form is connected to the contact list from your Gmail account, you can use this list or just post the link to your survey using your <a href="http://www.web-development-blog.com/archives/integrate-your-mailchimp-newsletter-subscription/">mailing list hosted by Mailchimp</a> or any other provider you like. If you use the Google contact list you should create a contact group to save time.  Google Apps users are able to collect the user name and/or restrict the form only for users having an Google account from the same domain. If you use a regular Google account, these functions are not available. Don&#8217;t forget to post the survey to your company&#8217;s facebook fan page or your twitter feed if you have one or both of them.</p>
<h3>Easy data access and statistics</h3>
<p>Every form submission is stored in a spreadsheet at the moment the user has clicked the submit button. All submitted form values are accessible and stored together with the timestamp from the moment that the form was submitted. Beside the spreadsheet there is a data summary using graphics which will give you some quick information about how often the data was submitted. </p>
<h3>Optional: Stylish integrations for your website or blog</h3>
<p>Since Google Forms are hosted off-site, you need  some way to embed the code in your website. Google is offering some code snippet which you can use as an Iframe but you can&#8217;t customize the style to match your own site&#8217;s design. Because you can&#8217;t change the style or code, we need an easy way &#8220;make it a part&#8221; from your website:</p>
<ol>
<li>Create your form and use the plain theme</li>
<li>Add the following code to your websites header to include jQuery and the thickbox plugin:

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jquery.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;thickbox.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">link</span> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;thickbox.css&quot;</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;screen&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div>

<p>You need to download upload the files if they don&#8217;t exist on your site.
</li>
<li>Create a link to the form URL (copy paste from the footer section on the page where you can edit the form)

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://spreadsheets.google.com/viewform?hl=en&amp;formkey=dDZjNGROdVllS2JYMGdSZnVSSWF4YkE6MA&amp;TB_iframe=true&amp;height=400&amp;width=500&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;thickbox&quot;</span>&gt;</span>Survey Form<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Don&#8217;t mix the query parameters, any parameter after &#8220;TB_iframe&#8221; is not recognized on the target page. Change also the values for the width and height to match your forms dimensions. The pseudo class name &#8220;thickbox&#8221; is used to enable the tickbox feature.
</li>
<li>After submission Google will show a confirmation screen, don&#8217;t forget to edit this message (from the edit screen: More actions -> Edit confirmation</li>
</ol>
<p>We created some <a href="http://spreadsheets.google.com/viewform?formkey=dDZjNGROdVllS2JYMGdSZnVSSWF4YkE6MA" rel="shadowbox;height=480;width=640" title="Google Forms example">example forms</a> using multiple pages and most of the form elements. </p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/integrate-your-mailchimp-newsletter-subscription/" rel="bookmark" title="October 26, 2009">Integrate your MailChimp Newsletter Subscription</a></li>
<li><a href="http://www.web-development-blog.com/archives/jquery-form-plugin-and-php-file-uploads/" rel="bookmark" title="November 2, 2009">jQuery form plugin and PHP file uploads</a></li>
<li><a href="http://www.web-development-blog.com/archives/jquery-contact-form-for-your-website/" rel="bookmark" title="January 11, 2010">jQuery Contact form for your website</a></li>
</ul>
<p><!-- Similar Posts took 3.821 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/create-surveys-with-google-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best methods to optimize JPEG images for websites</title>
		<link>http://www.web-development-blog.com/archives/best-methods-to-optimize-jpeg-images-for-websites/</link>
		<comments>http://www.web-development-blog.com/archives/best-methods-to-optimize-jpeg-images-for-websites/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 06:53:01 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[PHP scripts]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[fireworks]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[jpeg]]></category>
		<category><![CDATA[optimize]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=964</guid>
		<description><![CDATA[While Internet connections becoming faster and faster, it&#8217;s still important to keep your website as fast as possible. One of the &#8220;slow&#8221; parts of your website are the images. In this article we show several ways to down-size the JPEG images for your website. If you design your website should use some compression for your [...]]]></description>
			<content:encoded><![CDATA[<p>While Internet connections becoming faster and faster, it&#8217;s still important to keep your website as fast as possible. One of the &#8220;slow&#8221; parts of your website are the images. In this article we show several ways to down-size the JPEG images for your website. </p>
<p>If you design your website should use some compression for your photos, banners and many other web elements. You favorite image editor should have some function to down-size your images. For this article we compare 4 ways to compress our example photo (file-size 393KB):</p>
<h3>Adobe Photoshop</h3>
<p>If you use the &#8220;Save for web&#8230;&#8221; function it&#8217;s possible to create a web optimized version from your image that is small enough and has a quality which is good enough for the Internet. In our example we used the preset &#8220;High Quality&#8221; which is equal to 60% quality. The result is a smaller file with a file-size of 95KB.</p>
<h3>Adobe Fireworks</h3>
<p>Fireworks is my favorite web image editor because of the unique feature to have bitmap and vector elements in a single file. We did an export with 80% quality and the compressed version has a file-size of 85KB.<br />
<span id="more-964"></span></p>
<h3>GIMP (free Image Editor)</h3>
<p>Both Adobe products are not free and are only available for Wndows or Mac. If you need a free editor you should try Gimp, an Image editor which many functions like the other commercial products mentioned before. The editor has also a &#8220;Safe for web&#8221; function and we used and 86% quality for our export file which becomes a size of 87KB. If you use GIMP to down-size your photos from your digital camera you should check the option &#8220;Strip EXIF&#8221;, removing the photo&#8217;s meta data will make the file smaller for another ~10KB.</p>
<h3><a href="http://www.web-development-blog.com/archives/image-manipulations-with-imagemagick/">ImageMagick</a> (command line tools)</h3>
<p>The last option is a tool we used via the command line. Using the following command the file is down-sized using an 80% quality (file size after conversion is 89KB):</p>
<p><code>convert original_100.jpg -quality 80 imagemagick_80.jpg</code>  </p>
<p>Sure this method works different from the other methods but the good point is that you can use this code in your PHP scripts or just from the command line of your web server.</p>
<h3>Original image and compressed copies</h3>
<p>Check the images below and note that the quality for the compressed images (file 2-5) is very similar.</p>

<a href='http://www.web-development-blog.com/wp-content/uploads/2010/03/original_100.jpg' rel='shadowbox[album-964];player=img;' title='Original 100%'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/03/original_100-150x150.jpg" class="attachment-thumbnail" alt="Original 100%" title="Original 100%" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/03/photoshop_60.jpg' rel='shadowbox[album-964];player=img;' title='Adobe Photoshop 60%'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/03/photoshop_60-150x150.jpg" class="attachment-thumbnail" alt="Adobe Photoshop 60%" title="Adobe Photoshop 60%" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/03/fireworks_80.jpg' rel='shadowbox[album-964];player=img;' title='Adobe Fireworks 80%'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/03/fireworks_80-150x150.jpg" class="attachment-thumbnail" alt="Adobe Fireworks 80%" title="Adobe Fireworks 80%" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/03/imagemagick_80.jpg' rel='shadowbox[album-964];player=img;' title='Imagemagick 80%'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/03/imagemagick_80-150x150.jpg" class="attachment-thumbnail" alt="Imagemagick 80%" title="Imagemagick 80%" /></a>
<a href='http://www.web-development-blog.com/wp-content/uploads/2010/03/gimp_86.jpg' rel='shadowbox[album-964];player=img;' title='GIMP 86%'><img width="150" height="150" src="http://www.web-development-blog.com/wp-content/uploads/2010/03/gimp_86-150x150.jpg" class="attachment-thumbnail" alt="GIMP 86%" title="GIMP 86%" /></a>

<p>The results after compression is very similar and the file size is between 85KB (fireworks) and 95KB (Photoshop). If you&#8217;re looking to down-size another 5-10%, you should try <a href="http://developer.yahoo.com/yslow/smushit/" rel="nofollow">Smush.it</a> a free service from Yahoo. They offer a tool which is able to optimize your images for 5-10% smaller file size without to lower the grade of quality.</p>
<h3>Optimize your JPEG images with ImageMagick and PHP</h3>
<p>If you need to optimize the images for your existing website, the following code might be useful:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/home/some_directory/'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// the directory with your files</span>
<span style="color: #000088;">$compr</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">80</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// the quality precentage</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$ext</span> <span style="color: #339933;">=</span> <span style="color: #990000;">pathinfo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> PATHINFO_EXTENSION<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^(jpg|jpeg)$/i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ext</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'convert %s -quality %d %s'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$compr</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span> 
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Just enter the path to the the directory you like to optimize safe the code as a PHP script and execute the file from the command line of browser. Note only the JPEG files are getting compressed.</p>
<p>Optimize your images top make them load faster, but be careful don&#8217;t compress them too much. <strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/image-manipulations-with-imagemagick/" rel="bookmark" title="May 5, 2009">Image manipulations with Imagemagick</a></li>
<li><a href="http://www.web-development-blog.com/archives/upload-images-for-usage-in-tinymce/" rel="bookmark" title="September 25, 2008">Upload images for usage in TinyMCE</a></li>
<li><a href="http://www.web-development-blog.com/archives/tutorial-ftp-upload-via-curl/" rel="bookmark" title="October 11, 2007">Tutorial: FTP Upload via cURL</a></li>
</ul>
<p><!-- Similar Posts took 3.613 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/best-methods-to-optimize-jpeg-images-for-websites/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>How-to choose a WordPress Hosting Provider</title>
		<link>http://www.web-development-blog.com/archives/how-to-choose-a-wordpress-hosting-provider/</link>
		<comments>http://www.web-development-blog.com/archives/how-to-choose-a-wordpress-hosting-provider/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 20:58:02 +0000</pubDate>
		<dc:creator>Olaf</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[webfaction]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=856</guid>
		<description><![CDATA[If you’re using the popular blog tool WordPress, you’re probably looking for th best possible WordPress hosting provider. Choosing a host might be hard becaise the are a lot of them. I advise you to take your time and make sure you’re choosing the best option. WordPress doesn&#8217;t require a lot of “special” server features, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-859" title="wordpress hosting" src="http://www.web-development-blog.com/wp-content/uploads/2010/01/wordpress-hosting-e1264366350314.png" alt="" width="100" height="101" />If you’re using the popular blog tool <a rel="nofollow" href="http://wordpress.org/">WordPress</a>, you’re probably looking for th best possible <a href="http://www.webhostingsearch.com/wordpress-hosting.php">WordPress hosting</a> provider. Choosing a host might be hard becaise the are a lot of them. I advise you to take your time and make sure you’re choosing the best option. WordPress doesn&#8217;t require a lot of “special” server features, one reason more why most hosting provider will offer to host your blog. You don&#8217;t need one at the top-of-the-line and don&#8217;t go for the cheapest plan you can find.</p>
<p>For the beginning blog a shared hosting plan should be enough, be sure an account upgrade is possible at any time. This is because you never know how fast your site is going to grow or how big it is going to get, and it’s always better to be well prepared. Check also the possibilities to move your account from a shared hosting plan to a VPS or dedicated server. You also want to avoid the smaller, lesser-known hosts. Go for the companies where a lot of people talk about, don&#8217;t host by some new company from a guy you met on forum for example.</p>
<blockquote><p>Don&#8217;t forget, if you blog has frequent reader and traffic a hosting failure can ruin your blog site.</p></blockquote>
<h3>User and file permissions</h3>
<p>WordPress has great features to maintain the core system, any plugins and your <a href="http://www.all4yourwebsite.com/wordpress_themes.php">WordPress themes</a>. While for the download and update from external files an build-in FTP function act as a kind of fall-back feature, you need the ability to edit your files right on the server. The last one requires some permissions to edit files thought the WordPress backend. <span id="more-856"></span>A normal webserver is configured that files have a 0644 permission and directories have a 0755 permission. Most PHP/Apache powered webserver using one user ID to process the PHP files. This permission is okay for most PHP functions but not for file based functions used to edit template or plugin files. A few hosting provider offer services where PHP scripts are executed with user ID from the web hosting account. Providing hosting accounts this way is more secure than raising the values for the file/directory permissions to 666/777. If the PHP scripts are executed by the host account user WordPress doesn&#8217;t need the FTP fallback feature and all updates and downloads are served much faster. The file upload tool from WordPress back-end works without any problems if PHP scripts are executed with user permissions.</p>
<h3>Important features you need</h3>
<ul>
<li>Your host has to provide daily backups, ask them how long each backup is stored (several days are a must to have feature, more than a week is nice)</li>
<li>Host your blog in the country where you except to have the most visitors. This way most of your visitors will see your site very fast.</li>
<li>Check if the database and mail service is not hosted on the same machine as the website service. Most of the the mail server can slow down a server if mail related service have to fight back a lot of spam.</li>
</ul>
<h3>More PHP related requirements</h3>
<p>These features are not required by the WordPress core system but many plugins: cURL, safe_mode=off, simpleXML, Socket support</p>
<h3>WebFaction, smarter web hosting</h3>
<p>Now that you know what to look for in a host, it shouldn’t be too hard to make a decision. If you’d like to go the fast way and skip researching, I recommend <a rel="nofollow" href="http://bit.ly/3z4QHw">webfaction.com</a> hosting, we use it for this blog site. <a rel="nofollow" href="http://bit.ly/3z4QHw">WebFaction</a> fits all of the discussed requirements, and it’s very affordable overall. It’s literally perfect for hosting WordPress sites, and if you know for a fact you are going to be a webmaster for a while, you can save a significant amount of money by pre-paying for 2-5 years. WebFaction has hosting plans ranging from 10GB to 60GB, and from $5.50 to $34.50 per month. There’s a great selection, so you can find a plan that’s perfect for your budget and your wallet.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/create-custom-website-backups-using-cron/" rel="bookmark" title="October 17, 2009">Create custom website backups using CRON</a></li>
<li><a href="http://www.web-development-blog.com/archives/website-monitoring-services-reviews-and-facts/" rel="bookmark" title="December 13, 2009">Website Monitoring Services: Reviews and Facts</a></li>
<li><a href="http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/" rel="bookmark" title="September 1, 2009">Sending e-mails via SMTP with PHPmailer and Gmail</a></li>
</ul>
<p><!-- Similar Posts took 3.767 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/how-to-choose-a-wordpress-hosting-provider/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Website Monitoring Services: Reviews and Facts</title>
		<link>http://www.web-development-blog.com/archives/website-monitoring-services-reviews-and-facts/</link>
		<comments>http://www.web-development-blog.com/archives/website-monitoring-services-reviews-and-facts/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 21:42:52 +0000</pubDate>
		<dc:creator>finalwebsites.com</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[locations]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[website monitoring]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=744</guid>
		<description><![CDATA[There are so many possibilities why a website went off-line, all of them have one in common: Your visitors can&#8217;t access your site and maybe they will never come back! Possible problems why a website might be off-line: Web server or network is down &#8211; A very common problem, there is so much computer technology [...]]]></description>
			<content:encoded><![CDATA[<p>There are so many possibilities why a website went off-line, all of them have one in common: Your visitors can&#8217;t access your site and maybe they will never come back!</p>
<h3>Possible problems why a website might be off-line:</h3>
<ul>
<li>Web server or network is down &#8211; A very common problem, there is so much computer technology used&#8230;</li>
<li>Some web service has stopped working &#8211; It might be just one of them; MySQL, Apache or Named/Bind and your website doesn&#8217;t function for 100%</li>
<li>Too much traffic on your site &#8211; Most web servers doesn&#8217;t have the capacity for a high traffic website. 500 visitors at the same time might be enough to make your site slow or that a web server crashes.</li>
<li>External serving problems; a name server or DNS server is down &#8211; this one is nasty; if your DNS zone is down, it&#8217;s possible that you see the problem a day later, while others see that your site is down since a while.</li>
<li>A script stopped working properly &#8211; If a script is written and tested everything looks fine, but what if you get some external content via RSS or by user input? Sometimes a simple, but not standard, text character can break your website.</li>
<li>At last but not least &#8220;the hacker&#8221; &#8211; there are so many people on the web trying to bring a website down.</li>
</ul>
<p>Even if you try to do anything to protect your website or application against all the trouble above, you&#8217;re not safe for a failure. You have to monitor your website and hopefully a problem is notified fast enough before you loose a lot of visitors.<span id="more-744"></span></p>
<p>Some of you will say:</p>
<blockquote><p>&#8220;I don&#8217;t need to pay for a service, because my hosting provider is doing this for free!&#8221;</p></blockquote>
<p>That&#8217;s right many good providers will monitor the server you&#8217;re hosting on and/or they provide tools which will monitor your server or website. If you use them, check if these tests are done by a server outside from the network where your website or server is hosted. If there is a problem in the rack or router where the monitoring server and your website is located, you will never get a message about the down-time.</p>
<p>Some other important feature for international websites, is the ability to do test from different locations around the world. A problem might exist for only people from some continent, if your business has to take care about this, you should know about problems happen far away from your websites location.</p>
<p>Website monitoring is not a protection against failures but the following features will help you to &#8220;tackle&#8221; problems very fast:</p>
<ul>
<li>Monitor from different locations &#8211; if one fails the bot has to use the next one</li>
<li>Multiple notification options &#8211; SMS/text messages and email are required, if you can send a downtime message to more than one person, do this!</li>
<li>Tests for specific content &#8211; Just a ping or HTTP header is often not enough, test for specific text on your site</li>
<li>Adjustable values for a timeout &#8211; Some websites need more time than others to get loaded.</li>
</ul>
<p><a href="http://www.web-development-blog.com/wp-content/uploads/2009/12/ScreenSite24x7.png" rel="shadowbox[post-744];player=img;"><img title="ScreenSite24x7" src="http://www.web-development-blog.com/wp-content/uploads/2009/12/ScreenSite24x7-e1261464123885-300x183.png" alt="" width="300" height="183" /></a></p>
<p><em>(Screenshot response times Site24x7)</em></p>
<p>If your website and server is working fine, the number of downtime messages should be very low. If you need to spend several dollars a month for SMS/text messages, it might be usefull to spend this money for better <a href="http://www.webhostingsearch.com/">hosting</a>. Website monitoring is to get warned if something went wrong.</p>
<h3>Website Monitoring Service Provider</h3>
<p>In this article we review three <a href="http://www.web-development-blog.com/archives/is-your-website-is-down-know-before-your-visitors-do/">website monitoring service</a> provider, all of them offer a great service product and you find them in a lower price segment. That will say, these services are acceptable for most of the websites on the Internet.</p>
<p><a rel="nofollow" href="http://site24x7.com/signup-plans.html?q=wgCjwuCY"><img class="alignnone size-full wp-image-749" title="site24x7" src="http://www.web-development-blog.com/wp-content/uploads/2009/12/site24x7.gif" alt="site24x7" width="119" height="39" /></a></p>
<p>I used Site24x7 since they started offering services a few years ago. They offer anything you need to monitor your server or website; Tests on websites or server ports (you can monitor every server port) are only a view options. Visit their website for all the features they offer. They offer a free account and  15day trials for their paid services, if you use the standard or premium service you pay for each single test period  and location. If you need multiple test locations, you should use the premium plan because this plan includes 6 free locations for each test. If you need more than one website tested from multiple locations, than is this provider more expansive than others.</p>
<p><a rel="nofollow" href="http://www.hyperspin.com/"><img class="alignnone size-full wp-image-750" title="hyperspin" src="http://www.web-development-blog.com/wp-content/uploads/2009/12/hyperspin.gif" alt="hyperspin" width="150" height="32" /></a></p>
<p>Hyperspin is monitoring provider who offers a lot of features and also a great reseller program. If you&#8217;re looking for a way to monetize your websites traffic, by offering your own monitoring service, you should try them. All test features are available and they have multiple locations and you can setup four of them as a global setting for all your tests. They don&#8217;t charge you for using all the locations. They offer discounts if you buy more or if you pay in upfront for a whole year. I stopped using them because their control panel was several times not accessible from my laptop (using different IP addresses).</p>
<p><a rel="nofollow" href="http://www.pingdom.com/"><img class="alignnone size-full wp-image-752" title="pingdom" src="http://www.web-development-blog.com/wp-content/uploads/2009/12/pingdom.gif" alt="pingdom" width="137" height="50" /></a></p>
<p>Pingdom is the current servuice I&#8217;m using to monitor all my websites. Their control panel and website looks very modern and they offering a great plan with five tests for only $9.95/month. They offer e-mail, SMS/text message notifications and a some great integration with Twitter. Multiple test locations are included without any additional charge. I like the fast and clear interface and off course the price. I&#8217;m sure I will keep using them the next years.</p>
<p>While most of the features for these three website monitoring service providers are the same, is the pricing very different. I&#8217;m sure all three working great, just try them.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/is-your-website-is-down-know-before-your-visitors-do/" rel="bookmark" title="August 22, 2008">Is your website is down? Know before your visitors do!</a></li>
<li><a href="http://www.web-development-blog.com/archives/how-to-choose-a-wordpress-hosting-provider/" rel="bookmark" title="January 24, 2010">How-to choose a WordPress Hosting Provider</a></li>
<li><a href="http://www.web-development-blog.com/archives/online-backup-service-comparison/" rel="bookmark" title="June 5, 2010">Online Backup Service &#8211; Comparison</a></li>
</ul>
<p><!-- Similar Posts took 3.806 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/website-monitoring-services-reviews-and-facts/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Adsense for WordPress &#8211; 5 Plugins reviewed</title>
		<link>http://www.web-development-blog.com/archives/adsense-for-wordpress-5-plugins-reviewed/</link>
		<comments>http://www.web-development-blog.com/archives/adsense-for-wordpress-5-plugins-reviewed/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 05:41:41 +0000</pubDate>
		<dc:creator>finalwebsites.com</dc:creator>
				<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[ad formats]]></category>
		<category><![CDATA[adsense]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[revenue share]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.web-development-blog.com/?p=680</guid>
		<description><![CDATA[If you try to monetize your blog with Google Adsense you might have noticed that this is not an easy job. Blog reader are very focused on reading the content and writing comments. Many readers will not visit your site since they read your blogs in a RSS reader. That will say that we need [...]]]></description>
			<content:encoded><![CDATA[<p>If you try to monetize your blog with Google Adsense you might have noticed that this is not an easy job. Blog reader are very focused on reading the content and writing comments. Many readers will not visit your site since they read your blogs in a RSS reader. That will say that we need a very flexible Adsense plugin to place our ads on the right place in our blogs articles. Some of you will say &#8220;I place them always on place A, B and C&#8221;, but I&#8217;m sure that this will not work all the time.</p>
<p>We need a plugin that has the following features:</p>
<ul>
<li> Single blog post placements</li>
<li> Unlimited number of ad layouts</li>
<li> Easy to integrate with each blog post using tags</li>
<li> <strong>NO revenue share with the plugin author!</strong></li>
</ul>
<p>Additionally we like to see features like:</p>
<ul>
<li> IP-based filter functions</li>
<li> Alternative ads for the IP filter</li>
<li> Using ad code from other networks than Google Adsense</li>
</ul>
<p>For this review we selected the 5 WordPress plugins because they have recent updates (active projects) and many features:<span id="more-680"></span></p>
<h3><a rel="nofollow" href="http://wordpress.org/extend/plugins/adsense-daemon/">Adsense Daemon</a></h3>
<p>This plugin supports three different Adsense layouts. All configured ads are placed on all your blog pages (single view). For each layout you have the control (7 options) where each ad will show up. The plugin has basic features and acts very static. A good plugin if you don&#8217;t need so much functions.</p>
<h3><a rel="nofollow" href="http://wordpress.org/extend/plugins/adsense-integrator/">AdSense Integrator</a></h3>
<p>If you need a more flexible plugin, you should check this Adsense plugin for WordPress. It has all the features we mentioned above and more: Default settings for automatic placement, full control about which pages have to show the automatic placed ads and a CSS margin for some better ad placement. Revenue share is enabled by default, but you can change this setting (if you don&#8217;t like to support the developer with 4% of all your ad impressions).</p>
<p>Everything seems working, except the single ad placement <img src='http://www.web-development-blog.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
With every placement the &#8220;initial&#8221; ad is placed too, maybe a recent bug? I posted this to the WordPress forum and will post the result here. Anyway a good plugin if this bug is fixed.</p>
<h3><a rel="nofollow" href="http://wordpress.org/extend/plugins/all-in-one-adsense-and-ypn/">All in One Adsense and YPN!</a></h3>
<p>Great plugin idea on how to configure your blog using Google Adsense or  YPN (Yahoo Network). While the configuration options are very comfortable is this plugin less flexible. All settings are site-wide and valid for all ad formats.</p>
<p>The plugin offers an option to use multiple ad formats, a random function will show them all. I don&#8217;t think that this really works (maybe for different colors?). There is an option to disable ads for single pages, but this will disable all ads on that single page. While this plugin looks really good, I will not use it.</p>
<h3 title="Easy AdSense Redux V2.82"><a rel="nofollow" href="http://wordpress.org/extend/plugins/easy-adsense-redux/">Easy AdSense</a></h3>
<p>If you check the WordPress plugin page you should think that this is a great plugin, but I deactivated the plugin very quickly. At the moment that the plugin was activated, it shows already the Adsense ads from the plugin author and also at least one link to his website on each of your blog pages. I need to mention that I choose the plugin because according the author, is this version more advanced and <strong>doesn&#8217;t</strong> include a revenue share. The plugin has a lot of functions to configure the different products like Adsense for search and feeds and of course the content and link units. I&#8217;m sure you can treat the setting that way to get a static ad setup for your site, but I don&#8217;t like a plugin that includes code in my site without permission and that&#8217;s the reason why my advice is to NOT using this plugin. You never know what a future version will do with your website!</p>
<h3><a rel="nofollow" href="http://wordpress.org/extend/plugins/quick-adsense/">Quick Adsense</a></h3>
<p>Finally a plugin that has all important features and works for 100%! Using this plugin you have all the options you need for your blog site: Static placements for your whole website, custom placements for your posts using simple snippets or just disable ads for a single post. This plugin has more features:</p>
<ul>
<li>Add your Adsense code to your blog posts and your sidebar widgets, all settings are controlled through a single settings page.</li>
<li>You don&#8217;t need to remember the tag names, just place them using quick tags in the HTML mode of your editor.</li>
<li>There is space for 10 different ad layouts for the blog pages and 3 in your sidebar.</li>
<li>There are no strings attached will say no revenue share or unwanted links, the only thing the author asks is to place a link or button.</li>
</ul>
<p>There is one feature missing; the IP filter with the option to show alternative ads. Since this feature is very special and should work together with a GEO location script, I think I can miss this feature for now.</p>
<p>At the end I must say I go for the Quick Adsense plugin, because I need a plugin that makes it possible to place the ads on locations I choose while writing a blog post. The Adsense Integrator is also a good plugin, but because of the bug in the current version it&#8217;s not useful for my website.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.web-development-blog.com/archives/adsense-for-domains-just-another-domain-parking-service/" rel="bookmark" title="February 22, 2009">AdSense for Domains, just another Domain Parking Service?</a></li>
<li><a href="http://www.web-development-blog.com/archives/dont-let-google-run-your-site/" rel="bookmark" title="December 30, 2006">Don&#8217;t let Google run your site</a></li>
<li><a href="http://www.web-development-blog.com/archives/useful-plugins-for-your-bbpress-forum/" rel="bookmark" title="August 29, 2009">Useful Plugins for your bbPress Forum</a></li>
</ul>
<p><!-- Similar Posts took 3.772 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-development-blog.com/archives/adsense-for-wordpress-5-plugins-reviewed/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->