<?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>WLScripting.com &#187; Basics</title>
	<atom:link href="http://www.wlscripting.com/tutorial/category/basics/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wlscripting.com</link>
	<description>PHP coding tutorials</description>
	<lastBuildDate>Wed, 19 May 2010 17:44:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-beta-1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Remove whitespace from string</title>
		<link>http://www.wlscripting.com/tutorial/67</link>
		<comments>http://www.wlscripting.com/tutorial/67#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:15:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/?p=67</guid>
		<description><![CDATA[Remove whitespace from the beginning, middle and end of a string.]]></description>
			<content:encoded><![CDATA[<p>I have been doing a lot of coding using the framework <a href="http://www.codeigniter.com/">CodeIgniter</a> lately so I have been creating many simple helper functions to perform different tasks. My most recent project involves creating PDF files with text from a database. The problem is that the text from the database is dirty, meaning that in a person&#8217;s name there could be multiple spaces between the person&#8217;s first and last name or even spaces at the end of their name. In dealing with legacy data that you cannot change but needs to be output correctly without those spaces you get creative. The below function should help solve this issue.</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">replace_whitespace</span><span class="hl-brackets">(</span><span class="hl-var">$Value</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-brackets">)
{
	</span><span class="hl-comment">// Replace any whitespace with only a single space
	</span><span class="hl-reserved">return </span><span class="hl-identifier">preg_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">/\s+/</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">' '</span><span class="hl-code">, </span><span class="hl-identifier">trim</span><span class="hl-brackets">(</span><span class="hl-var">$Value</span><span class="hl-brackets">))</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Usage:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">White  Lake  Scripting</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$Text</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string"> - </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-identifier">ReplaceWhitespace</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$Text</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string"> - </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Output:</p>
<div class="hl-surround" ><div class="hl-main"><pre>White  Lake  Scripting - 22
White Lake Scripting - 20</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/67/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sanitize copy/paste text from word</title>
		<link>http://www.wlscripting.com/tutorial/58</link>
		<comments>http://www.wlscripting.com/tutorial/58#comments</comments>
		<pubDate>Wed, 25 Mar 2009 20:54:28 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/58</guid>
		<description><![CDATA[Sanitize content copied and pasted from Microsoft Word for insertion into database.]]></description>
			<content:encoded><![CDATA[<p>In a recent project I have had to deal with text copied from a Microsoft Word document and pasted into a textarea. Word automatically changes a few certain characters to what it thinks it should be, such as the ellipsis and quotes. When dealing with inserting that text into a database I was getting errors. To solve my problems I created a sanitize function to replace these certain characters with acceptable characters.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// Used to sanitize Microsoft Word's Special Characters
// Good reference </span><span class="hl-url">http://www.lookuptables.com</span><span class="hl-comment">
</span><span class="hl-reserved">function </span><span class="hl-identifier">SanitizeFromWord</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-brackets">) {

	</span><span class="hl-var">$chars</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(
		</span><span class="hl-number">130</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">,     </span><span class="hl-comment">// baseline single quote
		</span><span class="hl-number">131</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">NLG</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-comment">// florin
		</span><span class="hl-number">132</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">, 	  </span><span class="hl-comment">// baseline double quote
		</span><span class="hl-number">133</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">...</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-comment">// ellipsis
		</span><span class="hl-number">134</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">**</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// dagger (a second footnote)
		</span><span class="hl-number">135</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">***</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// double dagger (a third footnote)
		</span><span class="hl-number">136</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">^</span><span class="hl-quotes">'</span><span class="hl-code">, 	  </span><span class="hl-comment">// circumflex accent
		</span><span class="hl-number">137</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">o/oo</span><span class="hl-quotes">'</span><span class="hl-code">,  </span><span class="hl-comment">// permile
		</span><span class="hl-number">138</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">Sh</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// S Hacek
		</span><span class="hl-number">139</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&lt;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left single guillemet
		</span><span class="hl-number">140</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">OE</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// OE ligature
		</span><span class="hl-number">145</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left single quote
		</span><span class="hl-number">146</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right single quote
		</span><span class="hl-number">147</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left double quote
		</span><span class="hl-number">148</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right double quote
		</span><span class="hl-number">149</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// bullet
		</span><span class="hl-number">150</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// endash
		</span><span class="hl-number">151</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">--</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// emdash
		</span><span class="hl-number">152</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">~</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// tilde accent
		</span><span class="hl-number">153</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(TM)</span><span class="hl-quotes">'</span><span class="hl-code">,  </span><span class="hl-comment">// trademark ligature
		</span><span class="hl-number">154</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">sh</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// s Hacek
		</span><span class="hl-number">155</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right single guillemet
		</span><span class="hl-number">156</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">oe</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// oe ligature
		</span><span class="hl-number">159</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// Y Dieresis
		</span><span class="hl-number">169</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(C)</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// Copyright
		</span><span class="hl-number">174</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(R)</span><span class="hl-quotes">'	  </span><span class="hl-comment">// Registered Trademark
	</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-reserved">foreach </span><span class="hl-brackets">(</span><span class="hl-var">$chars </span><span class="hl-reserved">as </span><span class="hl-var">$chr</span><span class="hl-code">=&gt;</span><span class="hl-var">$replace</span><span class="hl-brackets">) {
		</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-identifier">chr</span><span class="hl-brackets">(</span><span class="hl-var">$chr</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$replace</span><span class="hl-code">, </span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-reserved">return </span><span class="hl-var">$Text</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/58/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Random string generator</title>
		<link>http://www.wlscripting.com/tutorial/50</link>
		<comments>http://www.wlscripting.com/tutorial/50#comments</comments>
		<pubDate>Wed, 13 Feb 2008 15:54:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/50</guid>
		<description><![CDATA[Create a random string, great for passwords!]]></description>
			<content:encoded><![CDATA[<p>Have you ever needed a random string to be created for a certain task? The below code is great for using as a random password generator, security code generator and such.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">randomstring</span><span class="hl-brackets">(</span><span class="hl-var">$length</span><span class="hl-code"> = </span><span class="hl-number">8</span><span class="hl-brackets">) {
  </span><span class="hl-comment">// $salt contains the list of available characters to use in this random string
  </span><span class="hl-var">$salt</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
  </span><span class="hl-comment">// Start a random string
  </span><span class="hl-identifier">srand</span><span class="hl-brackets">((</span><span class="hl-identifier">double</span><span class="hl-brackets">)</span><span class="hl-identifier">microtime</span><span class="hl-brackets">()</span><span class="hl-code">*</span><span class="hl-number">1000000</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-comment">// Set our length counter at 0
  </span><span class="hl-reserved">while </span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-var">$length</span><span class="hl-brackets">) { </span><span class="hl-comment">// Loop through creating our random string
    // Get the position of the random character we want
    </span><span class="hl-var">$num</span><span class="hl-code"> = </span><span class="hl-identifier">rand</span><span class="hl-brackets">()</span><span class="hl-code"> % </span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$salt</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-comment">// Use substr to extract this from our $salt above
    </span><span class="hl-var">$tmp</span><span class="hl-code"> = </span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-var">$salt</span><span class="hl-code">, </span><span class="hl-var">$num</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-comment">// Add the character we got above and add to the rest of string
    </span><span class="hl-var">$pass</span><span class="hl-code"> = </span><span class="hl-var">$pass</span><span class="hl-code"> . </span><span class="hl-var">$tmp</span><span class="hl-code">;
    </span><span class="hl-comment">// Increment our length counter one
    </span><span class="hl-var">$i</span><span class="hl-code">++;
  </span><span class="hl-brackets">}
  </span><span class="hl-comment">// We have finally reached our max length
  // Lets return the string for use in the rest of our script
  </span><span class="hl-reserved">return </span><span class="hl-var">$pass</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>To use this code you would run:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-default">echo randomstring(8); // Produces a random 8 character long string
$rand = randomstring(8);
echo $rand;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/50/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prevent direct file access</title>
		<link>http://www.wlscripting.com/tutorial/48</link>
		<comments>http://www.wlscripting.com/tutorial/48#comments</comments>
		<pubDate>Thu, 16 Aug 2007 17:52:51 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[File Manipulation]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/48</guid>
		<description><![CDATA[Protecting direct access to php files that do not need to be directly accessed.]]></description>
			<content:encoded><![CDATA[<p>Do you have PHP files that you do not want visitors to directly run but would still like to use them in your code? Here is a little trick picked up from the code in the phpBB forum code.</p>
<p>Create a file named config.php or some other file that you are going to include before any other code. In this file put the following:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">define</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">INMYSCRIPT</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This code creates a defined variable INMYSCRIPT which can be named as anything that you want. Then on every other page in your script that you do not want to be ran on their own put the following: (This filename is code.php)</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">defined</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">INMYSCRIPT</span><span class="hl-quotes">'</span><span class="hl-brackets">)){
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">You cannot access this file directly.</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">die</span><span class="hl-code">;
</span><span class="hl-brackets">}

</span><span class="hl-comment">// Whatever other code you wish goes below here
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">This file is safe to be ran</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Now, instead of the file outputting any data to the browser that could be harmful, the only content output is: &#8220;You cannot access this file directly&#8221;. You could very easily create a re-direct script to transfer them to a specific page or you could modify the text to any other HTML or other content you wanted. </p>
<p>Open up your web browser and try accessing code.php. You should get that error message that we created. Now if you create one last file that we will name as test.php, place the following:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">require</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">config.php</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">require</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">code.php</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Now if you try accessing the test.php file from your web server you will be shown: &#8220;This file is safe to be ran&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extract meta tags from a website</title>
		<link>http://www.wlscripting.com/tutorial/38</link>
		<comments>http://www.wlscripting.com/tutorial/38#comments</comments>
		<pubDate>Fri, 26 Jan 2007 19:33:22 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/38</guid>
		<description><![CDATA[Extract meta tags from a website or a file.]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to get the meta tags from any website in an easy to manage way? There is a built in PHP function called get_meta_tags. This extracts all meta tags from the website and places them in an array. This array contains the tag name as the key, then the value is the data for the meta tag. </p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">; </span><span class="hl-comment">// Make the tags easier to read with &lt;pre&gt;
// Get meta information of &quot;</span><span class="hl-url">http://www.wlscripting.com</span><span class="hl-comment">&quot;
</span><span class="hl-var">$metaTags</span><span class="hl-code"> = </span><span class="hl-identifier">get_meta_tags</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">http://www.wlscripting.com</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-comment">// Print the array
</span><span class="hl-identifier">print_r</span><span class="hl-brackets">(</span><span class="hl-var">$metaTags</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This would produce an output of:</p>
<div class="hl-surround" ><div class="hl-main"><pre>Array
(
    [keywords] =&gt; wlscripting, white lake scripting, whitelake, scripting, php, classes, code, counters, mysql, data validation, csv, free
    [description] =&gt; PHP Tutorials
    [author] =&gt; Daniel Kassner
    [robots] =&gt; ALL
)</pre></div></div>
<p>You can then easily loop through the $metaTag variable to do anything you wished with the data.</p>
<p>**Note: You may also use the path to a file instead of a web address to achieve the same results. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/38/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Advanced CSV Export</title>
		<link>http://www.wlscripting.com/tutorial/37</link>
		<comments>http://www.wlscripting.com/tutorial/37#comments</comments>
		<pubDate>Thu, 25 Jan 2007 16:15:20 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/37</guid>
		<description><![CDATA[Export any data to a CSV from a database. Automatically adds the column headers and all data.]]></description>
			<content:encoded><![CDATA[<blockquote style="border: 2px solid #FF0000; text-align: center"><p>An updated posting on this subject can be found at:<br /><a href="http://www.danielkassner.com/2009/12/31/creating-a-csv-file-with-php">Creating a CSV file with PHP</a></p></blockquote>
<p>In one of my last tutorials I explained how you can export data into a CSV. You can see that tutorial at: <a href="http://www.wlscripting.com/tutorial/36">Export data to CSV (Comma Separated Value)</a>. In this tutorial you will learn more about getting items from a database instead of hand coding the CSV contents.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$db</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_connect</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">localhost</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">username</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">password</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Connect to the database
</span><span class="hl-var">$link</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_select_db</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">database name</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$db</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Select the database name

</span><span class="hl-reserved">function </span><span class="hl-identifier">parseCSVComments</span><span class="hl-brackets">(</span><span class="hl-var">$comments</span><span class="hl-brackets">) {
  </span><span class="hl-var">$comments</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">&quot;&quot;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$comments</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// First off escape all &quot; and make them &quot;&quot;
  </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">eregi</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">,</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$comments</span><span class="hl-brackets">) </span><span class="hl-reserved">or </span><span class="hl-identifier">eregi</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$comments</span><span class="hl-brackets">)) { </span><span class="hl-comment">// Check if I have any commas or new lines
    </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$comments</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">; </span><span class="hl-comment">// If I have new lines or commas escape them
  </span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
    </span><span class="hl-reserved">return </span><span class="hl-var">$comments</span><span class="hl-code">; </span><span class="hl-comment">// If no new lines or commas just return the value
  </span><span class="hl-brackets">}
}

</span><span class="hl-var">$sql</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">SELECT * FROM tableName</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Start our query of the database
</span><span class="hl-var">$numberFields</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_num_fields</span><span class="hl-brackets">(</span><span class="hl-var">$sql</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Find out how many fields we are fetching

</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$numberFields</span><span class="hl-brackets">) { </span><span class="hl-comment">// Check if we need to output anything
	</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">&lt;</span><span class="hl-var">$numberFields</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">) {
		</span><span class="hl-var">$head</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_field_name</span><span class="hl-brackets">(</span><span class="hl-var">$sql</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Create the headers for each column, this is the field name in the database
	</span><span class="hl-brackets">}
	</span><span class="hl-var">$headers</span><span class="hl-code"> = </span><span class="hl-identifier">join</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$head</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">; </span><span class="hl-comment">// Make our first row in the CSV

	</span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-var">$info</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_fetch_object</span><span class="hl-brackets">(</span><span class="hl-var">$sql</span><span class="hl-brackets">)) {
		</span><span class="hl-reserved">foreach</span><span class="hl-brackets">(</span><span class="hl-var">$head </span><span class="hl-reserved">as </span><span class="hl-var">$fieldName</span><span class="hl-brackets">) { </span><span class="hl-comment">// Loop through the array of headers as we fetch the data
			</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-identifier">parseCSVComments</span><span class="hl-brackets">(</span><span class="hl-var">$info</span><span class="hl-code">-&gt;</span><span class="hl-var">$fieldName</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-brackets">} </span><span class="hl-comment">// End loop
		</span><span class="hl-var">$data</span><span class="hl-code"> .= </span><span class="hl-identifier">join</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$row</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">; </span><span class="hl-comment">// Create a new row of data and append it to the last row
		</span><span class="hl-var">$row</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-code">; </span><span class="hl-comment">// Clear the contents of the $row variable to start a new row
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Start our output of the CSV
	</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-type: application/x-msdownload</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-Disposition: attachment; filename=log.csv</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Pragma: no-cache</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Expires: 0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-reserved">echo </span><span class="hl-var">$headers</span><span class="hl-code">.</span><span class="hl-var">$data</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
	</span><span class="hl-comment">// Nothing needed to be output. Put an error message here or something.
	</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">No data available for this CSV.</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>As you will see in this tutorial I have continued to use the parseCSVComments() function from the previous tutorial. This ensures that your data is going to come out how you want it to appear in the CSV.</p>
<p>The best part about this script is that any table you put in the query on line 14 will be the headers and data in the CSV. No need to hand type out all the table headers unless you want to comment that section out and put in your own. So if you have a table full of users that includes: name, email, website, phone you could create a query like:</p>
<div class="hl-surround" style="height:28px;"><div class="hl-main"><pre>SELECT name, email, website, phone FROM users</pre></div></div>
<p>This would pull only those fields to the CSV if you had other data like passwords, nicknames or instant messenger addresses in the same table.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/37/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Export data to CSV (Comma Separated Value)</title>
		<link>http://www.wlscripting.com/tutorial/36</link>
		<comments>http://www.wlscripting.com/tutorial/36#comments</comments>
		<pubDate>Thu, 28 Dec 2006 15:26:11 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/36</guid>
		<description><![CDATA[Export any kind of data with PHP to a csv format. ]]></description>
			<content:encoded><![CDATA[<blockquote style="border: 2px solid #FF0000; text-align: center"><p>An updated posting on this subject can be found at:<br /><a href="http://www.danielkassner.com/2009/12/31/creating-a-csv-file-with-php">Creating a CSV file with PHP</a></p></blockquote>
<p>Ever needed export data to a CSV file (Comma Separated Value)? If you don&#8217;t know what a CSV is it is a bunch of values that are separated by a , . An example is:</p>
<div class="hl-surround" ><div class="hl-main"><pre>first value, second value, third value
fourth value, fifth value, sixth value</pre></div></div>
<p>Every value before a comma is new cell in the spreadsheet and everything after each new line is the start of a new row. The above would produce something like:</p>
<table border="1">
<tr>
<td>first value</td>
<td>second value</td>
<td>third value</td>
</tr>
<tr>
<td>fourth value</td>
<td>fifth value</td>
<td>sixth value</td>
</tr>
</table>
<p>To accomplish this in PHP you can go about things two ways: arrays or strings.</p>
<p>The array approach:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">first value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">second value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">third value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$data</span><span class="hl-code"> .= </span><span class="hl-identifier">join</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$row</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">; </span><span class="hl-comment">// Join all values without any trailing commas and add a new line

</span><span class="hl-var">$row</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-code">; </span><span class="hl-comment">// We must clear the previous values
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">fourth value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">fifth value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-brackets">[]</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">sixth value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$data</span><span class="hl-code"> .= </span><span class="hl-identifier">join</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$row</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;

</span><span class="hl-comment">// Output the headers to download the file
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-type: application/x-msdownload</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-Disposition: attachment; filename=log.csv</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Pragma: no-cache</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Expires: 0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$data</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Using strings:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$row</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">first value,</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-code"> .= </span><span class="hl-quotes">'</span><span class="hl-string">second value,</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-code"> .= </span><span class="hl-quotes">'</span><span class="hl-string">third value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$data</span><span class="hl-code"> .= </span><span class="hl-var">$row</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;

</span><span class="hl-var">$row</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">fourth value,</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-code"> .= </span><span class="hl-quotes">'</span><span class="hl-string">fifth value,</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$row</span><span class="hl-code"> .= </span><span class="hl-quotes">'</span><span class="hl-string">sixth value</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$data</span><span class="hl-code"> .= </span><span class="hl-var">$row</span><span class="hl-code">.</span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;

</span><span class="hl-comment">// Output the headers to download the file
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-type: application/x-msdownload</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-Disposition: attachment; filename=log.csv</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Pragma: no-cache</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Expires: 0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$data</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>The problem with using strings to create the CSV file is you have to pay attention to the last value in each row and strip out the last comma or not insert the last comma. You will also notice in the string version the $row .= &#8216;value&#8217;;<br />
The period before the = adds that value to the previous $row value. </p>
<p>On the next page I will show you how to handle line breaks, quotes and commas in your data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/36/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Website uptime check</title>
		<link>http://www.wlscripting.com/tutorial/30</link>
		<comments>http://www.wlscripting.com/tutorial/30#comments</comments>
		<pubDate>Sat, 19 Aug 2006 23:07:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Servers]]></category>

		<guid isPermaLink="false">http://wlscripting.com/tutorial/30</guid>
		<description><![CDATA[This code will allow you to check it a website is currently up or down.]]></description>
			<content:encoded><![CDATA[<p>Do you ever want to check many websites to see if they are up or not? This code can help you check multiple sites all from one page.</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">prepWWW</span><span class="hl-brackets">(</span><span class="hl-var">$url</span><span class="hl-brackets">) {
  </span><span class="hl-var">$replace</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://</span><span class="hl-quotes">&quot;</span><span class="hl-code"> =&gt; </span><span class="hl-quotes">&quot;&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">www.</span><span class="hl-quotes">&quot;</span><span class="hl-code"> =&gt; </span><span class="hl-quotes">&quot;&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-reserved">foreach</span><span class="hl-brackets">(</span><span class="hl-var">$replace </span><span class="hl-reserved">as </span><span class="hl-var">$toReplace</span><span class="hl-code">=&gt;</span><span class="hl-var">$replaceWith</span><span class="hl-brackets">) {
    </span><span class="hl-var">$url</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-var">$toReplace</span><span class="hl-code">, </span><span class="hl-var">$replaceWith</span><span class="hl-code">, </span><span class="hl-var">$url</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-brackets">}
  </span><span class="hl-var">$parts</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$url</span><span class="hl-brackets">)</span><span class="hl-code">;
  </span><span class="hl-var">$newURL</span><span class="hl-code"> = </span><span class="hl-identifier">strip_tags</span><span class="hl-brackets">(</span><span class="hl-identifier">addslashes</span><span class="hl-brackets">(</span><span class="hl-var">$parts</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]))</span><span class="hl-code">;
  </span><span class="hl-reserved">return </span><span class="hl-var">$newURL</span><span class="hl-code">;
</span><span class="hl-brackets">}

</span><span class="hl-var">$site</span><span class="hl-code"> = </span><span class="hl-identifier">prepWWW</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">www.wlscripting.com</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$check</span><span class="hl-code"> = @</span><span class="hl-identifier">fsockopen</span><span class="hl-brackets">(</span><span class="hl-var">$site</span><span class="hl-code">, </span><span class="hl-number">80</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$check</span><span class="hl-brackets">) {
  </span><span class="hl-reserved">echo </span><span class="hl-quotes">&quot;</span><span class="hl-var">$site</span><span class="hl-string"> is up</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
  </span><span class="hl-reserved">echo </span><span class="hl-quotes">&quot;</span><span class="hl-var">$site</span><span class="hl-string"> is down</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>First off we create the prepWWW function. This just prepares the domain name for usage with fsockopen(). We strip out all extra parts to the url so we only get the main domain like: wlscripting.com NOT http://www.wlscripting.com</p>
<p>Then we just check the website with fsockopen() on port 80, which is the port that Apache or IIS runs on usually unless you configured it differently. This 80 can be changed to any other port number to checking other services like: FTP 21, cPanel 2082, WHM 2086, and so on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/30/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Users Online</title>
		<link>http://www.wlscripting.com/tutorial/24</link>
		<comments>http://www.wlscripting.com/tutorial/24#comments</comments>
		<pubDate>Thu, 27 Jul 2006 02:05:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Counters]]></category>

		<guid isPermaLink="false">http://wlscripting.com/tutorial/24</guid>
		<description><![CDATA[Count the number of users currently on your site.]]></description>
			<content:encoded><![CDATA[<p>Keeping track of how many users have been on your website is very easy. This can be done with some basic MySQL code and the date() function. All you have to do is keep track of the users IP address and time they were last on the page. Lets get to some code:</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?
</span><span class="hl-var">$server</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">localhost</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$user</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">root</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$pass</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-code">;
</span><span class="hl-var">$db2</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">online</span><span class="hl-quotes">'</span><span class="hl-code">;

</span><span class="hl-var">$db</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_connect</span><span class="hl-brackets">(</span><span class="hl-var">$server</span><span class="hl-code">, </span><span class="hl-var">$user</span><span class="hl-code">, </span><span class="hl-var">$pass</span><span class="hl-brackets">) </span><span class="hl-reserved">or die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Could not connect.</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-var">$db</span><span class="hl-brackets">) 
	</span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">no db</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">mysql_select_db</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-var">$db2</span><span class="hl-quotes">&quot;</span><span class="hl-code">,</span><span class="hl-var">$db</span><span class="hl-brackets">))
 	</span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">No database selected.</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$server_time</span><span class="hl-code">=</span><span class="hl-identifier">date</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">U</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$client_ip</span><span class="hl-code">=</span><span class="hl-var">$_SERVER</span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">REMOTE_ADDR</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code">;

</span><span class="hl-var">$query</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">SELECT * FROM current_users WHERE ip='</span><span class="hl-var">$client_ip</span><span class="hl-string">'</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$check</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_fetch_array</span><span class="hl-brackets">(</span><span class="hl-var">$query</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$check</span><span class="hl-brackets">) {
	</span><span class="hl-var">$update</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">UPDATE current_users set time='</span><span class="hl-var">$server_time</span><span class="hl-string">' where ip='</span><span class="hl-var">$check</span><span class="hl-string">[ip]'</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
	</span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-var">$update</span><span class="hl-brackets">) </span><span class="hl-reserved">or die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Unable to process update: </span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">mysql_error</span><span class="hl-brackets">())</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
  </span><span class="hl-var">$sql</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">INSERT INTO `current_users` (`ip`, `time`) VALUES ('</span><span class="hl-var">$client_ip</span><span class="hl-string">', '</span><span class="hl-var">$server_time</span><span class="hl-string">')</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
  </span><span class="hl-var">$result</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-var">$sql</span><span class="hl-brackets">) </span><span class="hl-reserved">or die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Unable to process insert: </span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">mysql_error</span><span class="hl-brackets">())</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-var">$time</span><span class="hl-code">=</span><span class="hl-var">$server_time</span><span class="hl-code">-</span><span class="hl-number">1800</span><span class="hl-code">;
</span><span class="hl-var">$remove</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">DELETE from current_users WHERE time&lt;'</span><span class="hl-var">$time</span><span class="hl-string">'</span><span class="hl-quotes">&quot;</span><span class="hl-code">; </span><span class="hl-comment">// Remove users outside time limit
</span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-var">$remove</span><span class="hl-brackets">) </span><span class="hl-reserved">or die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Unable to delete: </span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">mysql_error</span><span class="hl-brackets">())</span><span class="hl-code">;

</span><span class="hl-comment">// Show the count
</span><span class="hl-var">$sql2</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_query</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">SELECT ip FROM current_users</span><span class="hl-quotes">&quot; </span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$currentVisitors</span><span class="hl-code"> = </span><span class="hl-identifier">mysql_num_rows</span><span class="hl-brackets">(</span><span class="hl-var">$sql2</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">There have been </span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$currentVisitors</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> users online in the last 30 minuets.</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>The first query checks to see if your IP address is in the database. If your IP address is in the database it updates the time. If your IP address is not in the database, we then insert the time and your IP address.</p>
<p>To eliminate old users we automatically remove users who have been online after 30 minutes(1800 Seconds). If you want to change the time delay just multiply 60 times the number of minutes.<br />
10 Minutes = 600<br />
15 Minutes = 900<br />
20 Minutes = 1200<br />
30 Minutes = 1800<br />
1 Hour = 3600</p>
<p>Make sure you create a database and apply your settings to the variables at the top.<br />
Insert the following SQL query into your database:</p>
<blockquote><p>CREATE TABLE `current_users` (<br />
  `ip` varchar(30) NOT NULL default &#8221;,<br />
  `time` varchar(30) NOT NULL default &#8221;<br />
) TYPE=MyISAM;</p></blockquote>
<p>Just save this as online.php and include this in your page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/24/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
