<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-4782784888239614103</atom:id><lastBuildDate>Sun, 22 Mar 2009 10:48:52 +0000</lastBuildDate><title>Tech Blog For Developers</title><description>This Blog Contains The best Tutorials for PHP and ASP</description><link>http://mytechblogisbest.blogspot.com/</link><managingEditor>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</managingEditor><generator>Blogger</generator><openSearch:totalResults>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-4010984867647756793</guid><pubDate>Sun, 22 Mar 2009 04:54:00 +0000</pubDate><atom:updated>2009-03-21T21:54:54.696-07:00</atom:updated><title>Tech Blog For Developers: 100 Twitter Tools to Help You Achieve All Your Goals</title><description>&lt;a href="http://mytechblogisbest.blogspot.com/2009/03/100-twitter-tools-to-help-you-achieve.html#links"&gt;Tech Blog For Developers: 100 Twitter Tools to Help You Achieve All Your Goals&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-4010984867647756793?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/tech-blog-for-developers-100-twitter.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-2360340694246419164</guid><pubDate>Sat, 21 Mar 2009 05:10:00 +0000</pubDate><atom:updated>2009-03-20T22:11:18.218-07:00</atom:updated><title>100 Twitter Tools to Help You Achieve All Your Goals</title><description>&lt;span style="font-weight:bold;"&gt;Twitter has become an incredible tool not just for communication, but for improving your life. College students can use it to expand their social circle, promote their side business, keep their coursework organized, and more. Whether you want to achieve your Twitter goals, or just use it as a tool to achieve others, these tools will help you get there.&lt;br /&gt;&lt;br /&gt;Twitter Analysis&lt;br /&gt;&lt;br /&gt;If your goal is to be popular and influential on Twitter, be sure to check out these tools that will tell you how you’re doing.&lt;br /&gt;&lt;br /&gt;   1. Twitter Grader: Learn your Twitter grade, your local Twitter Elite, and find new people to follow through Twitter Grader.&lt;br /&gt;   2. Twitterholic: Check out the top Twitter users and find out your Twitter stats on Twitterholic.&lt;br /&gt;   3. TweetStats: TweetStats offers a graphical analysis of your Twitter stats.&lt;br /&gt;   4. Twitter Friends: Carefully measure your Twitter conversations using Twitter Friends.&lt;br /&gt;   5. Twinfluence: Twinfluence will measure your Twitter influence based on reach, velocity, and social capital.&lt;br /&gt;   6. Tweetwasters: Find out how much time you and other users waste on Twitter.&lt;br /&gt;   7. Tweet-Rank: Learn about the quality of your tweets by finding out which ones won or lost followers.&lt;br /&gt;   8. Mr. Milestone: Get a tweet when you reach various milestones using this Twitter tool.&lt;br /&gt;   9. Retweetrank: Find out how many retweets you and other Twitter users have through this service.&lt;br /&gt;&lt;br /&gt;Information Gathering&lt;br /&gt;&lt;br /&gt;With these tools, you and gather information for market research, blog posts, and your own simple curiosity.&lt;br /&gt;&lt;br /&gt;  10. Tweetbeep: With Tweetbeep, you can set up alerts that will help you keep track of keywords on Twitter.&lt;br /&gt;  11. @myflightinfo: Use @myflightinfo to stay updated on your flight’s status.&lt;br /&gt;  12. Twitterverse: Check out archived timelines and tweets through Twitterverse.&lt;br /&gt;  13. Twitscoop: Twitscoop shares what’s hot on Twitter at any given moment.&lt;br /&gt;  14. Twitbuzz: Twitbuzz tracks the latest conversations as well as popular Twitter links.&lt;br /&gt;  15. StrawPoll: Use StrawPoll to make sharing your opinion as easy as sending an @reply.&lt;br /&gt;  16. Retweetist: This service ranks the hottest links being retweeted on Twitter.&lt;br /&gt;  17. Monitter: Get real time keyword monitoring on Twitter from Monitter.&lt;br /&gt;  18. TweetNews: TweetNews ranks stories based on the amount of related tweets.&lt;br /&gt;  19. TwitterBuzz: TwitterBuzz will tell you what’s being linked to the most on Twitter.&lt;br /&gt;  20. Tweetscan: Set up Tweetscan to make sure you don’t miss any @replies, and to get alerted of your search queries.&lt;br /&gt;&lt;br /&gt;Network Building &amp; Management&lt;br /&gt;&lt;br /&gt;Find more relevant Twitter users with the help of these tools.&lt;br /&gt;&lt;br /&gt;  21. Twitter Local: With this service, you can see tweets from Twitter users in a specific location.&lt;br /&gt;  22. Twubble: Twubble will expand your Twitter bubble, picking out people you may like to follow.&lt;br /&gt;  23. MyCleenr: Sort your friends by their last tweets, and you can get rid of the inactive and useless accounts you’re following.&lt;br /&gt;  24. Follow Cost: This tool will tell you how much effort it takes to follow someone.&lt;br /&gt;  25. Tweepler: Use Tweepler to organize your tweeps based on whether you’re following them or not.&lt;br /&gt;  26. Just Tweet It: Find Tweeple, tools, Twitter bots and more through this directory.&lt;br /&gt;  27. TweetWheel: TweetWheel will help you discover which of your Twitter friends know each other.&lt;br /&gt;  28. SocialToo: SocialToo will help you keep track of all of the people who have followed or unfollowed you.&lt;br /&gt;  29. Twitoria: Reduce your clutter on Twitter by finding your friends that haven’t tweeted in a long time.&lt;br /&gt;  30. TwitDir: With TwitDir, you’ll be able to search for people, and exploring categories including top followers and updaters.&lt;br /&gt;  31. Who Should I Follow?: Using this site, you can get good recommendations for Tweeps to follow.&lt;br /&gt;  32. Nearbytweets: Learn about all of the Twitter users in a specific area with the help of Nearbytweets.&lt;br /&gt;  33. Twellow: Find Twitter users in a specific industry using this service.&lt;br /&gt;  34. Mr. Tweet: Mr. Tweet is a personal networking assistant for Twitter, helping you find relevant followers.&lt;br /&gt;  35. Qwitter: Qwitter will help you manage your network by sending an alert when a person unfollows you.&lt;br /&gt;&lt;br /&gt;Twitter Management&lt;br /&gt;&lt;br /&gt;Save your time and cull your Twitter list with the help of these tools.&lt;br /&gt;&lt;br /&gt;  36. Summize: Retrieve information on Twitter quickly to search Twitter in real time.&lt;br /&gt;  37. Tweet O’Clock: Trying to reach someone? Tweet O’Clock will help you find the best time to get their attention.&lt;br /&gt;  38. Just Signal: Set up a filter using Just Signal to get only the tweets that discuss the keywords you’d like to read about.&lt;br /&gt;  39. TweepSearch: Put your Twitter network to good use and search your followers for specific parameters.&lt;br /&gt;  40. Friend or Follow: Manage your Twitter contacts and find out who’s not following you back through Friend or Follow.&lt;br /&gt;  41. TwitResponse: TwitResponse makes it easy for you to schedule the delivery of your tweets ahead of time.&lt;br /&gt;  42. TwitterSnooze: Put the pause button on a particular user for a while with Twitter Snooze.&lt;br /&gt;  43. Twitterless: Get notified when someone stops following you with Twitterless.&lt;br /&gt;  44. Twilert: Track specific keywords to receive alerts for using Twilert.&lt;br /&gt;  45. Tweetdeck: Tweetdeck has a groups function that will help you more efficiently follow the people you really want to listen to.&lt;br /&gt;  46. Twalala: Put the mute button on certain people and topics for a while if you are receiving lots of updates you’re not really interested in.&lt;br /&gt;&lt;br /&gt;Sharing Tools&lt;br /&gt;&lt;br /&gt;Promote your business, share photos, and more using these Twitter tools.&lt;br /&gt;&lt;br /&gt;  47. Tweetburner: Use Tweetburner to share links, and you can track their usage.&lt;br /&gt;  48. Twitpic: Twitpic makes it easy to take mobile phone photos and share them using your Twitter account.&lt;br /&gt;  49. TwitterHawk: Get targeted marketing on Twitter through TwitterHawk.&lt;br /&gt;  50. Acamin: Acamin makes it easy to share files on Twitter with your followers.&lt;br /&gt;  51. Glue: Post links to books, movies, restaurants and more on Twitter through Glue.&lt;br /&gt;  52. Ping.fm: This service will update all of your social networks at once.&lt;br /&gt;  53. TweeTube: TweeTube makes it easy to share videos on Twitter.&lt;br /&gt;  54. twiggit: Use this automated service to share the articles you digg on Twitter.&lt;br /&gt;  55. Twisten.fm: Share what you’re listening to on Twitter through Twisten.fm.&lt;br /&gt;&lt;br /&gt;Organization &amp; Productivity&lt;br /&gt;&lt;br /&gt;These Twitter tools will make your life a bit more streamlined.&lt;br /&gt;&lt;br /&gt;  56. Twittercal: Link your Twitter account and Google Calendar to easily keep up with your events and appointments.&lt;br /&gt;  57. Timer: Use Timer to get reminders about tasks through your Twitter account.&lt;br /&gt;  58. TwitterNotes: Organize your notes using Twitter with TwitterNotes.&lt;br /&gt;  59. Remember the Milk: Use Remember the Milk on Twitter to update your to do list.&lt;br /&gt;  60. Tweetake: Tweetake will back up your Twitter timeline for archiving and more.&lt;br /&gt;  61. Nozbe: Nozbe makes it easy to add and update your to do list on Twitter.&lt;br /&gt;  62. Toodledo: This popular to do list app integrates nicely with Twitter.&lt;br /&gt;  63. TrackThis: Send TrackThis your tracking number, and you’ll get Twitter messages every time there’s a change in location.&lt;br /&gt;  64. Joint Contact: Get project management productivity on Twitter using Joint Contact.&lt;br /&gt;  65. Tempo: This time tracking tool allows you to send in updates from Twitter.&lt;br /&gt;  66. Tweet Later: Tweet Later offers a great way to set up alerts, schedule tweets, send thank you DMs, and more.&lt;br /&gt;  67. OutTwit: OutTwit will make it easy for you to use Twitter inside of Outlook.&lt;br /&gt;  68. Jott: Jott makes it easy for you to tweet without ever having to type, transcribing your voice message to Twitter.&lt;br /&gt;&lt;br /&gt;Life Tools&lt;br /&gt;&lt;br /&gt;With these tools, you can work on relationships, life tracking, and more.&lt;br /&gt;&lt;br /&gt;  69. MyMileMarker: Keep track of your mileage with info sent via Twitter every time you fill up.&lt;br /&gt;  70. 21Tweets: 21Tweets offers personal coaching on Twitter.&lt;br /&gt;  71. TwtTRIP: Organize your travel plans and find other Twitter travelers on your way with TwtTRIP.&lt;br /&gt;  72. Tweet Answers: Twitter Answers makes it easy to ask questions and get answers on Twitter.&lt;br /&gt;  73. Twtvite: Twtvite is a simple event organizer that will help you create a tweetup.&lt;br /&gt;  74. Vacatweet: Set up an autoresponder for your Twitter account with Vacatweet.&lt;br /&gt;  75. plusplusbot: Share when someone goes out of their way to help you, or otherwise make your feelings known using plusplusbot.&lt;br /&gt;  76. TrackDailyGoals: Use this site and the #dailygoals hashtag to keep track of your goals every day.&lt;br /&gt;  77. ConnectTweet: Put the voices of your group or business together through ConnectTweet.&lt;br /&gt;  78. Tweeteorology: Find tweets about the weather in any location through Tweeteorology.&lt;br /&gt;  79. DreamTweet: Keep a reminder of your dreams and nightmares, and follow the dreams of others through DreamTweet.&lt;br /&gt;&lt;br /&gt;Business &amp; Finance&lt;br /&gt;&lt;br /&gt;Use these tools to improve your business and finances through Twitter.&lt;br /&gt;&lt;br /&gt;  80. Chipin: If you’re raising funds on Twitter, make use of Chipin to set a goal and let your supporters track the progress of the campaign.&lt;br /&gt;  81. Xpenser: You can Twitter your expenses to Xpenser and they will be recorded for you.&lt;br /&gt;  82. Twittertise: Schedule your tweets and track their clickthroughs with this app designed for Twitter advertising.&lt;br /&gt;  83. TwtQpon: Create simple Twitter coupons for your business with TwtQpon.&lt;br /&gt;  84. CheapTweet: Get all of the deals, sales, coupons and more being discussed on Twitter through CheapTweet.&lt;br /&gt;  85. Tipjoy: Like Chipin, Tipjoy offers a way to create social payments for your cause, content, or people.&lt;br /&gt;  86. SalesTwit: Get contact management for Twitter with the help of SalesTwit.&lt;br /&gt;  87. Tweet What You Spend: Track your cash in a really effective way using Tweet What You Spend.&lt;br /&gt;  88. StockTwits: StockTwits shares the investment discussions on Twitter in real time.&lt;br /&gt;&lt;br /&gt;Health&lt;br /&gt;&lt;br /&gt;Track your health using these Twitter tools.&lt;br /&gt;&lt;br /&gt;  89. Qwitter: Update Qwitter to shame yourself into quitting smoking.&lt;br /&gt;  90. TweetPlot: Use TweetPlot to chart your food and fitness statistics.&lt;br /&gt;  91. Tweetwhatyoueat: Keep a food diary to track what you’re eating every day using Tweetwhatyoueat.&lt;br /&gt;  92. gtFtr: Use the gtFtr tool to record your exercise activity on Twittr.&lt;br /&gt;  93. SugarStats: Track, monitor, and share your blood sugar through Twitter with SugarStats.&lt;br /&gt;  94. FoodFeed: This Twitter-based food log makes it easy for you to track what you’re eating.&lt;br /&gt;&lt;br /&gt;Blogging&lt;br /&gt;&lt;br /&gt;Bring your blog life and Twitter life together with these tools.&lt;br /&gt;&lt;br /&gt;  95. Add to Any: Get your posts shared on Twitter by using Add to Any on your WordPress blog.&lt;br /&gt;  96. TwitThis: Make use of this plugin to send Twitter messages about your blog post.&lt;br /&gt;  97. MyTwitter: Use the MyTwitter plugin to display your Twitter status on WordPress.&lt;br /&gt;  98. Twitpress: Twitpress will send out a Tweet every time you post a new blog entry.&lt;br /&gt;  99. TwitterCounter: With this plugin, you can display the number of followers you have on Twitter.&lt;br /&gt; 100. TwitterFeed: Announce your blog post on Twitter with a customized message using TwitterFeed.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-2360340694246419164?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/100-twitter-tools-to-help-you-achieve.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-7919650946616140525</guid><pubDate>Sat, 21 Mar 2009 04:25:00 +0000</pubDate><atom:updated>2009-03-20T22:06:30.762-07:00</atom:updated><title>Most Desirable Collection Of powerful jQuery- part1</title><description>&lt;p&gt;jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.   As Web developers we are always in search of new tutorials and resources, tips, tricks for our readers . Today we listed Most Desirable Collection Of powerful jQuery etc. We obviously cannot cover all the best from the web, but we have tried to cover as much as possible. &lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;I will appreciate if you can spread the word via Digg, Stumbleupon and other social media websites, Thank you.&lt;/h4&gt; &lt;/blockquote&gt;  &lt;p&gt;1.&lt;a target="_blank" href="http://plugins.jquery.com/project/NestedSortable"&gt;NestedSortable&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://plugins.jquery.com/project/NestedSortable"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="NestedSortable" alt="NestedSortable" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPg7D28dXI/AAAAAAAACy4/TEIUYmN8dVM/NestedSortable%5B6%5D.jpg?imgmax=800" width="575" border="0" height="188" /&gt;&lt;/a&gt; 2. &lt;a target="_blank" href="http://plugins.jquery.com/project/flick"&gt;jQuery Flick&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://plugins.jquery.com/project/flick"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jQuery Flick" alt="jQuery Flick" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPg9-IBlGI/AAAAAAAACy8/r67yrB1w12A/jQuery%20Flick%5B6%5D.jpg?imgmax=800" width="576" border="0" height="188" /&gt;&lt;/a&gt; 3.&lt;a target="_blank" href="http://plugins.jquery.com/project/Absolutize"&gt;Jquery-Absolutize&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://plugins.jquery.com/project/Absolutize"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Jquery-Absolutize" alt="Jquery-Absolutize" src="http://lh3.ggpht.com/_zffIzal5cfI/ScPg_4hcJNI/AAAAAAAACzA/pNFuktrFWcI/Jquery-Absolutize%5B6%5D.jpg?imgmax=800" width="563" border="0" height="184" /&gt;&lt;/a&gt; 4. &lt;a target="_blank" href="http://jquery.com/demo/grey/"&gt;Greybox Redux&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://jquery.com/demo/grey/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Greybox Redux" alt="Greybox Redux" src="http://lh5.ggpht.com/_zffIzal5cfI/ScPhCLPV9pI/AAAAAAAACzE/Gc3Ps1prPUE/Greybox%20Redux%5B7%5D.jpg?imgmax=800" width="557" border="0" height="182" /&gt;&lt;/a&gt; 5. &lt;a target="_blank" href="http://www.noupe.com/css/jquery-hover-sub-tag-cloud.html"&gt;jquery Hover Sub Tag Cloud&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://www.noupe.com/css/jquery-hover-sub-tag-cloud.html"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jquery Hover Sub Tag Cloud" alt="jquery Hover Sub Tag Cloud" src="http://lh5.ggpht.com/_zffIzal5cfI/ScPhE0LK0QI/AAAAAAAACzI/slvZrnuBsnk/jquery%20Hover%20Sub%20Tag%20Cloud%5B6%5D.jpg?imgmax=800" width="546" border="0" height="402" /&gt;&lt;/a&gt;6.  &lt;a target="_blank" href="http://www.protofunc.com/scripts/jquery/backgroundPosition/"&gt;Background Animation Plugin&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://www.protofunc.com/scripts/jquery/backgroundPosition/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Background Animation Plugin" alt="Background Animation Plugin" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPhHZr_0NI/AAAAAAAACzM/9EhpGx_isYc/Background%20Animation%20Plugin%5B6%5D.jpg?imgmax=800" width="553" border="0" height="160" /&gt;&lt;/a&gt; &lt;/p&gt;            &lt;p&gt;7. &lt;a target="_blank" href="http://www.jankoatwarpspeed.com/post/2008/07/09/Justify-elements-using-jQuery-and-CSS.aspx"&gt;Justify elements using jQuery&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://www.jankoatwarpspeed.com/post/2008/07/09/Justify-elements-using-jQuery-and-CSS.aspx"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Justify elements using jQuery" alt="Justify elements using jQuery" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPhJQezZzI/AAAAAAAACzQ/7N4Q_F_ep80/Justify%20elements%20using%20jQuery%5B6%5D.jpg?imgmax=800" width="556" border="0" height="161" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;8. &lt;a target="_blank" href="http://nicolae.namolovan.googlepages.com/jquery.inputHintBox.demo.html"&gt;jQuery InputHintBox&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://nicolae.namolovan.googlepages.com/jquery.inputHintBox.demo.html"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jQuery InputHintBox" alt="jQuery InputHintBox" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPhLoSmGSI/AAAAAAAACzU/qsdqJPW2rJo/jQuery%20InputHintBox%5B6%5D.jpg?imgmax=800" width="567" border="0" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;9. &lt;a target="_blank" href="http://mucur.name/system/jquery_example/"&gt;jQuery Form Input Plugin&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://mucur.name/system/jquery_example/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jQuery Form Input Plugin" alt="jQuery Form Input Plugin" src="http://lh6.ggpht.com/_zffIzal5cfI/ScPhOSndDAI/AAAAAAAACzY/TF-NGZJCTK4/jQuery%20Form%20Input%20Plugin%5B6%5D.jpg?imgmax=800" width="563" border="0" height="163" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;10. &lt;a target="_blank" href="http://code.google.com/p/jquery-ahover/"&gt;Jquery-Animated Hover&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://code.google.com/p/jquery-ahover/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Jquery-Animated Hover" alt="Jquery-Animated Hover" src="http://lh6.ggpht.com/_zffIzal5cfI/ScPhQXTpsPI/AAAAAAAACzc/vP_qs3PnDd4/Jquery-Animated%20Hover%5B6%5D.jpg?imgmax=800" width="574" border="0" height="166" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;11. &lt;a target="_blank" href="http://amiworks.co.in/talk/akmodal-simplest-alternative-to-thickbox/"&gt;Jquery - akModal alternative to thickbox&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://amiworks.co.in/talk/akmodal-simplest-alternative-to-thickbox/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Jquery - akModal alternative to thickbox" alt="Jquery - akModal alternative to thickbox" src="http://lh6.ggpht.com/_zffIzal5cfI/ScPhSp58Z_I/AAAAAAAACzg/UP3NkLd4G7c/Jquery%20-%20akModal%20alternative%20to%20thickbox%5B8%5D.png?imgmax=800" width="415" border="0" height="367" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;12. &lt;a target="_blank" href="http://www.digital-web.com/extras/jquery_crash_course/"&gt;Jquery-AIR&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://www.digital-web.com/extras/jquery_crash_course/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Jquery-AIR" alt="Jquery-AIR" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPhVJaki3I/AAAAAAAACzk/QKkkc8VTvSs/Jquery-AIR%5B6%5D.jpg?imgmax=800" width="522" border="0" height="153" /&gt;&lt;/a&gt; 13. &lt;a target="_blank" href="http://jqueryfordesigners.com/slider-gallery/"&gt;jQuery Slider Gallery&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://jqueryfordesigners.com/slider-gallery/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jQuery Slider Gallery" alt="jQuery Slider Gallery" src="http://lh3.ggpht.com/_zffIzal5cfI/ScPhXviVtRI/AAAAAAAACzo/8qRuPQrefC0/jQuery%20Slider%20Gallery%5B6%5D.jpg?imgmax=800" width="564" border="0" height="164" /&gt;&lt;/a&gt; 14. &lt;a target="_blank" href="http://acko.net/dev/farbtastic"&gt;Farbtastic: jQuery color picker&lt;/a&gt;  :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://acko.net/dev/farbtastic"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Farbtastic jQuery color picker" alt="Farbtastic jQuery color picker" src="http://lh3.ggpht.com/_zffIzal5cfI/ScPhZ07coEI/AAAAAAAACzs/adePyAyrVnM/Farbtastic%20jQuery%20color%20picker%5B6%5D.jpg?imgmax=800" width="539" border="0" height="157" /&gt;&lt;/a&gt; &lt;/p&gt;      &lt;p&gt;15.  &lt;a target="_blank" href="http://www.avidansoft.com/scripts"&gt;Damn Small Rich Text Editor&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://www.avidansoft.com/scripts"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Damn Small Rich Text Editor" alt="Damn Small Rich Text Editor" src="http://lh5.ggpht.com/_zffIzal5cfI/ScPhcI3BdRI/AAAAAAAACzw/6HAJoM_cO78/Damn%20Small%20Rich%20Text%20Editor%5B6%5D.jpg?imgmax=800" width="521" border="0" height="163" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;16. &lt;a target="_blank" href="http://moblur.org/workshop/jflot_intro/"&gt;jQuery + Flot = Plots, Canvas, Charts&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://moblur.org/workshop/jflot_intro/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="jQuery   Flot = Plots, Canvas, Charts" alt="jQuery   Flot = Plots, Canvas, Charts" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPheCsEQ1I/AAAAAAAACz0/Yc6GHqhuP-M/jQuery%20%2B%20Flot%20%3D%20Plots%2C%20Canvas%2C%20Charts%5B6%5D.jpg?imgmax=800" width="524" border="0" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;17. &lt;a target="_blank" href="http://projects.bundleweb.com.ar/jWYSIWYG/"&gt;Inline content editor&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://projects.bundleweb.com.ar/jWYSIWYG/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Inline content editor" alt="Inline content editor" src="http://lh3.ggpht.com/_zffIzal5cfI/ScPhgH_faAI/AAAAAAAACz4/aL0dsyKN86s/Inline%20content%20editor%5B6%5D.jpg?imgmax=800" width="537" border="0" height="168" /&gt;&lt;/a&gt;18.  &lt;a target="_blank" href="http://odyniec.net/projects/imgareaselect/"&gt;imgAreaSelect - jQuery Plugin&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://odyniec.net/projects/imgareaselect/"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="imgAreaSelect - jQuery Plugin" alt="imgAreaSelect - jQuery Plugin" src="http://lh6.ggpht.com/_zffIzal5cfI/ScPhiGz6CFI/AAAAAAAACz8/2kJeC6CO-4w/imgAreaSelect%20-%20jQuery%20Plugin%5B6%5D.jpg?imgmax=800" width="537" border="0" height="168" /&gt;&lt;/a&gt; 19. &lt;a target="_blank" href="http://eyebulb.com/dropshadow/"&gt;Drop shadow : jQuery Plugin&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://eyebulb.com/dropshadow/"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="Drop shadow  jQuery Plugin" alt="Drop shadow  jQuery Plugin" src="http://lh5.ggpht.com/_zffIzal5cfI/ScPhkKIpL5I/AAAAAAAAC0A/9Y7MqpS8LIo/Drop%20shadow%20%20jQuery%20Plugin%5B4%5D.gif?imgmax=800" width="188" border="0" height="225" /&gt;&lt;/a&gt; 20. &lt;a target="_blank" href="http://famspam.com/facebox"&gt;Facebox : jQuery lightbox&lt;/a&gt; :&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://famspam.com/facebox"&gt;&lt;img style="border: 0px none ; display: block; float: none; margin-left: auto; margin-right: auto;" title="Facebox jQuery lightbox" alt="Facebox jQuery lightbox" src="http://lh4.ggpht.com/_zffIzal5cfI/ScPhm-nJpAI/AAAAAAAAC0E/mb7WqTg-dT4/Facebox%20jQuery%20lightbox%5B9%5D.jpg?imgmax=800" width="501" border="0" height="157" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-7919650946616140525?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/most-desirable-collection-of-powerful.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-1872559701788026331</guid><pubDate>Fri, 20 Mar 2009 04:42:00 +0000</pubDate><atom:updated>2009-03-19T21:43:58.961-07:00</atom:updated><title>Authentication over HTTP</title><description>&lt;p face="arial"&gt; HTTP authentication traditionally takes the form of .htaccess files scattered around various directories webmasters want to keep private. A typical .htaccess file, combined with a .htpasswd file, contains information about users that are allowed access to a directory and their password. &lt;/p&gt; &lt;p face="arial"&gt; Even though Apache allows you to customise these permissions, the system is far from flexible - hand-editing files each time you add users, or having to group authorised users together by password is a little behind the times. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; HTTP authentication is mostly just a matter of sending special HTTP headers to your client asking them to provide access codes, and it is straightforward to implement in PHP as long as you have configured PHP to run as an Apache module (see previous issue for our installation guide). Let's look at basic authentication by creating the file auth.php, which should look like this: &lt;/p&gt; &lt;div  class="programlisting" style="font-family:arial;"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (!isset(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'PHP_AUTH_USER'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;])) {&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"WWW-Authenticate: Basic realm=\"Private Area\""&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"HTTP/1.0 401 Unauthorized"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// only reached if authentication fails&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Sorry - you need valid credentials granted access to the private area!\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;         exit;&lt;br /&gt;     } else {&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// only reached if authentication succeeds&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Welcome to the private area, {$_SERVER['PHP_AUTH_USER']} - you used {$_SERVER['PHP_AUTH_PW']} as your password."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;     }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;  &lt;div style="font-family: arial;" class="image"&gt; &lt;img src="http://www.tuxradar.com/files/practicalphp/auth1.jpg" /&gt; &lt;/div&gt; &lt;br /&gt;&lt;p style="font-family: arial;"&gt; Braces are used inside our final print statement because we are printing out a value from inside an array, and the braces tell PHP to treat &lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER['PHP_AUTH_USER']&lt;/span&gt; as an array variable that needs replacing with its value. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   To start the authentication process, we send two HTTP headers using PHP's &lt;em&gt;header()&lt;/em&gt; function. With &lt;em&gt;header()&lt;/em&gt;, you can send any HTTP header you want, so long as you send them all before you send any HTML. I will be mentioning &lt;em&gt;header()&lt;/em&gt; in several subsequent articles, but right now we are just interested in the WWW-Authenticate header and HTTP status codes. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; WWW-Authenticate allows us to define the area, or _realm_, to which we are limiting access. It might be "Internet Mail Gateway", "Members Area", or, in our example, "Private Area". This realm name is usually shown to users when they are prompted for their username and password. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   The second &lt;em&gt;header()&lt;/em&gt; function sends the HTTP status "401", which means "no access". This most often means no username and password have been entered, but it may also mean the details entered were incorrect. Therefore, while WWW-Authenticate tells the browser what response is required to authenticate, the 401 header says "no entry" - you need both to perform authentication. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; If your user clicks "Cancel" they should be presented with something other than a blank page. In our example above, we have the print line beginning "Sorry - you need valid" ready for this eventuality. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; The last print statement, "Welcome to the private area" is for people who have authenticated successfully. All it takes to authenticate currently is a username and password - we don't check the values of the data, we just accept whatever they give us. &lt;/p&gt; &lt;div  class="programlisting" style="font-family:arial;"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (!isset(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'PHP_AUTH_USER'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;])) {&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; That line forms the crux of authentication with PHP. When users submit authentication, PHP receives the username and password as &lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER['PHP_AUTH_USER']&lt;/span&gt; and &lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER['PHP_AUTH_PW']&lt;/span&gt; respectively. By checking whether &lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER['PHP_AUTH_USER']&lt;/span&gt; is set, we are saying, "Have we received an authentication username from the client?" If we have not, we send a request for authentication using WWW-Authenticate and exit the script. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; When our visitors provide a username and password, the script is called again. This time the 'if' statement evaluates to true and we print out our welcome message. Most sites would want to perform some sort of username and password checking in order to make authentication worthwhile, so let us change the script to include simple credentials checking. &lt;/p&gt; &lt;div  class="programlisting" style="font-family:arial;"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (!isset(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'PHP_AUTH_USER'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;])) {&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"WWW-Authenticate: Basic realm=\"Private Area\""&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;         &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"HTTP/1.0 401 Unauthorized"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;         print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Sorry - you need valid credentials to be granted access!\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;         exit;&lt;br /&gt;     } else {&lt;br /&gt;         if ((&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'PHP_AUTH_USER'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;] ==&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;'paul'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) &amp;amp;&amp;amp; (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_SERVER&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'PHP_AUTH_PW'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;] ==&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;'hudson'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;             print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Welcome to the private area!"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;         } else {&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"WWW-Authenticate: Basic realm=\"Private Area\""&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;             &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"HTTP/1.0 401 Unauthorized"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;             print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Sorry - you need valid credentials to be granted access!\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;             exit;&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; The modified script above now only allows users that provide the username 'paul' and the password 'hudson'. We have two conditions combined using AND (&amp;amp;&amp;amp;), which means that the 'if' statement only evaluates to true if the username is 'paul' and the password is 'hudson'. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; Our system is now more powerful, but we still need to hard code usernames and passwords for everyone we want to have access to our realm. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-1872559701788026331?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/authentication-over-http.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-509079914583292310</guid><pubDate>Fri, 20 Mar 2009 04:37:00 +0000</pubDate><atom:updated>2009-03-19T21:37:28.771-07:00</atom:updated><title>Reading queued headers</title><description>&lt;div style="font-family: arial;" class="funcprototypes"&gt;   &lt;p class="funcprototype"&gt;     array &lt;strong&gt;headers_list&lt;/strong&gt; ( void )   &lt;/p&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   We already looked at the &lt;em&gt;headers_sent()&lt;/em&gt; function, which tells us whether or not HTTP headers have already been sent to the client. This function duplicates that functionality, but, crucially, also returns headers that have yet to be sent, which when you think about it is a bit more useful. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; As you can see from the prototype, it takes no parameters, and returns an array. That array contains a numerically indexed list of the headers that are ready for sending, which means we can extend our previous example like this: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Expires: Sat, 22 Dec 1979 05:30:00 GMT"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"This is some text for output.&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;     &lt;br /&gt;      if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;headers_sent&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$filename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$linenum&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// if no headers have been sent, send one&lt;br /&gt;          // this will not execute, as we sent the Expires header.&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Location: www.yoursite.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          exit;&lt;br /&gt;      } else {&lt;br /&gt;          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Headers already sent in $filename on line $linenum.&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Headers sent are:&lt;br /&gt; &lt;ul&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$headers&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;headers_list&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;();&lt;br /&gt;          foreach(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$headers&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;as&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;li&gt;$header&lt;/li&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;/ul&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          exit;&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;div style="font-family: arial;" class="caution"&gt;   &lt;p&gt; Author's Note: This function was broken at the time of writing. Please check the PHP bug database (http://bugs.php.net/29683) for an update. &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-509079914583292310?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/reading-queued-headers.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-1331412283733144164</guid><pubDate>Fri, 20 Mar 2009 04:36:00 +0000</pubDate><atom:updated>2009-03-19T21:36:48.705-07:00</atom:updated><title>Sending custom headers Using PHP</title><description>&lt;div style="font-family: arial;" class="funcprototypes"&gt;   &lt;p class="funcprototype"&gt;     string &lt;strong&gt;header&lt;/strong&gt; ( string &lt;em&gt;header_to_send&lt;/em&gt; [, bool &lt;em&gt;replace&lt;/em&gt; [, int &lt;em&gt;http_response_code&lt;/em&gt;]])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     bool &lt;strong&gt;headers_sent&lt;/strong&gt; ( [string &lt;em&gt;&amp;amp;file&lt;/em&gt; [, int &lt;em&gt;&amp;amp;line&lt;/em&gt;]])   &lt;/p&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; As well as status codes, there are a variety of special HTTP headers you can send that give you greater control. For example, the "Location" header instructs browsers to request a different URL, the "Content-Type" header tells browsers what kind of content they are about to receive, and the "WWW-Authenticate" header tells browsers that they need to send some authentication information to proceed. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; Each of these headers is combined with the HTTP status code to form the header of a HTTP response. This is then followed by two carriage return/line feeds, \r\n\r\n, then the actual content. For example, here is what I got when I sent a request to the popular hardware discussion site, tomshardware.com: &lt;/p&gt; &lt;div style="font-family: arial;" class="computeroutput"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HTTP/1.1 200 OK&lt;br /&gt;  Date: Thu, 31 Jul 2003 21:35:46 GMT&lt;br /&gt;  Server: Apache/1.3.26 (Unix) mod_perl/1.27&lt;br /&gt;  Cache-Control: max-age=0&lt;br /&gt;  Expires: Thu, 31 Jul 2003 21:35:46 GMT&lt;br /&gt;  Connection: close&lt;br /&gt;  Content-Type: text/html&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; There is quite a lot of information in there - even information on how the page should be cached by proxy servers and the local web browser. It is important to note that without utilising output buffering you always need to send your HTTP headers before you send any content. This is because HTTP headers are just plain text, and are indistinguishable from content except from the fact that they come first, and are separated by two carriage returns/line feeds. In practice, this means you must send your headers before you output any content at all - even blank lines. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   Sending custom headers in PHP is done using the &lt;em&gt;header()&lt;/em&gt; function, which takes the header to send as its parameter. So, to make a browser go to www.example.com when it visits a certain script, this would be used: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Location: http://www.example.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; Note that all HTTP headers are just text, and so are easy to use. Special attention should be paid when using Location header, however, as it is used to redirect clients from one page to another. When you send a Location header, PHP will continue to parse the script after the header was issued, which wastes system resources and also may let people see pages they would otherwise not be able to see. As a result, it's best to use call "exit;" immediately after header("Location: ...") to make sure that nothing happens after the redirect notice has been sent. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   The &lt;em&gt;headers_sent()&lt;/em&gt; function, when called with no parameters, simply returns true if your HTTP headers have been sent or false otherwise. Note that is not "whether some headers have been sent", but "whether the header-sending opportunity has passed". That is, if &lt;em&gt;headers_sent()&lt;/em&gt; returns true, sending more headers will trigger an error because non-header information has already been sent. If you pass in the two parameters as references PHP will fill them with the name of the file and the line number therein where the first output was sent. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   Here it is in action: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Expires: Sat, 22 Dec 1979 05:30:00 GMT"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"This is some text for output.&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;     &lt;br /&gt;      if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;headers_sent&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$filename&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$linenum&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// if no headers have been sent, send one&lt;br /&gt;          // this will not execute, as we sent the Expires header.&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Location: www.yoursite.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          exit;&lt;br /&gt;      } else {&lt;br /&gt;          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Headers already sent in $filename on line $linenum."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          exit;&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   That will print out the following: &lt;/p&gt; &lt;div style="font-family: arial;" class="computeroutput"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This is some text for output.&lt;br /&gt;  Headers already sent in C:\home\header.php on line 3.&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-1331412283733144164?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/sending-custom-headers-using-php.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-4049747361651043014</guid><pubDate>Fri, 20 Mar 2009 04:35:00 +0000</pubDate><atom:updated>2009-03-19T21:35:54.913-07:00</atom:updated><title>Host and IP resolution</title><description>&lt;div style="font-family: arial;" class="funcprototypes"&gt;   &lt;p class="funcprototype"&gt;     string &lt;strong&gt;gethostbyaddr&lt;/strong&gt; ( string &lt;em&gt;ip_address&lt;/em&gt;)   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     string &lt;strong&gt;gethostbyname&lt;/strong&gt; ( string &lt;em&gt;hostname&lt;/em&gt;)   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     string &lt;strong&gt;gethostbynamel&lt;/strong&gt; ( string &lt;em&gt;hostname&lt;/em&gt;)   &lt;/p&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   There are three functions designed to specifically resolve web host information, and these are &lt;em&gt;gethostbyaddr()&lt;/em&gt;, &lt;em&gt;gethostbyname()&lt;/em&gt; and &lt;em&gt;gethostbynamel()&lt;/em&gt; (that is a lower-case L, by the way). All three take one parameter, and the first two complement each other perfectly - &lt;em&gt;gethostbyname()&lt;/em&gt; returns the IP address of a server you specify, and &lt;em&gt;gethostbyaddr()&lt;/em&gt; returns the domain name of an IP address you specify. Here is an example of their usage: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $sdip&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;gethostbyname&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"slashdot.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sddomain&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;gethostbyaddr&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sdip&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"IP: $sdip\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;      print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Domain: $sddomain\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   That should output the following: &lt;/p&gt; &lt;div style="font-family: arial;" class="computeroutput"&gt;   &lt;p&gt;     &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IP: 66.35.250.150&lt;/span&gt;&lt;/code&gt;   &lt;/p&gt;   &lt;p&gt;     &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Domain: slashdot.org&lt;/span&gt;&lt;/code&gt;   &lt;/p&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   By default, &lt;em&gt;gethostbyname()&lt;/em&gt; returns the first value IP address for a host, but it is possible that one host has several. This is particularly common for large websites such as microsoft.com, where the site load is typically distributed across seven or eight web servers. If you want more detailed information about all the IP addresses backing a site, use &lt;em&gt;gethostbynamel()&lt;/em&gt;, like this: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $msips&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;gethostbynamel&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"www.microsoft.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;var_dump&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$msips&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   That should output something like this: &lt;/p&gt; &lt;div style="font-family: arial;" class="computeroutput"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;array(8) { [0]=&gt; string(14) "207.46.156.252" [1]=&gt; string(14) "207.46.144.222" [2]=&gt;&lt;br /&gt;string(14) "207.46.250.252" [3]=&gt; string(14) "207.46.245.156" [4]=&gt; string(14) "207.46.144.188" [5]=&gt; string(14) "207.46.134.221" [6]=&gt; string(14) "207.46.244.188" [7]=&gt; string(14) "207.46.249.252" }&lt;/span&gt;&lt;/code&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-4049747361651043014?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/host-and-ip-resolution.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-9155094145372447130</guid><pubDate>Fri, 20 Mar 2009 04:34:00 +0000</pubDate><atom:updated>2009-03-19T21:35:15.887-07:00</atom:updated><title>Domain resolution functions</title><description>&lt;div style="font-family: arial;" class="funcprototypes"&gt;   &lt;p class="funcprototype"&gt;     int &lt;strong&gt;dns_check_record&lt;/strong&gt; ( string &lt;em&gt;host&lt;/em&gt; [, string &lt;em&gt;type&lt;/em&gt;])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     int &lt;strong&gt;dns_get_mx&lt;/strong&gt; ( string &lt;em&gt;hostname&lt;/em&gt;, array &lt;em&gt;mxhosts&lt;/em&gt; [, array &lt;em&gt;&amp;amp;weight&lt;/em&gt;])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     int &lt;strong&gt;dns_get_record&lt;/strong&gt; ( string &lt;em&gt;hostname&lt;/em&gt; [, int &lt;em&gt;type&lt;/em&gt; [, array &lt;em&gt;&amp;amp;authns&lt;/em&gt;, array &lt;em&gt;&amp;amp;addtl&lt;/em&gt;]])   &lt;/p&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; There are three helpful Domain Name System (DNS) functions that allow you to check and retrieve specific information about other servers on the Internet or the local network. These are &lt;em&gt;dns_check_record()&lt;/em&gt;, &lt;em&gt;dns_get_mx()&lt;/em&gt;, &lt;em&gt;dns_get_record()&lt;/em&gt;, and, sadly, all three are not supported on Windows. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   The first two from that list, &lt;em&gt;dns_check_record()&lt;/em&gt; and &lt;em&gt;dns_get_mx()&lt;/em&gt;, both work in roughly the same way - the former returns true if it finds a DNS record for the domain you specify in parameter one, and the latter returns true if it finds an MX record for the domain specified in parameter one, and places the full list of MX servers into a second parameter as an array. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; If you did not know already, the Domain Name System (DNS), is what turns addresses such as www.slashdot.org into the computer-readable numbers that we call an IP address, such as 192.168.0.1. DNS servers store huge directories of these lookup tables, mapping domain names like slashdot.org to IP addresses, and it is these that are queried by your browser when you type your web address in. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; DNS records come in several forms, the most popular of which are A, MX, NS, and CNAME - A records store normal WWW names, MX records store email information, NS returns the name servers that contain complete information on the domain, and CNAMEs return canonical names to where the domain actually is. You can, for example, have the A record for your site pointing to 192.168.0.1, and the MX record for the same site pointing to 192.168.0.2. The NS records generally point to the name servers for the hosting company who run the web site. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   With that in mind, here's a little bit of example code to show off &lt;em&gt;dns_check_record()&lt;/em&gt;: &lt;/p&gt; &lt;div style="font-family: arial;" class="caution"&gt;   &lt;p&gt;     Author's Note: Be wary of cross-platform problems here -these functions don't work on Windows at the time of writing!   &lt;/p&gt; &lt;/div&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;dns_check_record&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"snaps.php.net"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) { print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Snaps.php.net exists\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;; }&lt;br /&gt;      if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;dns_check_record&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"kde.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) { print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"KDE.org exists\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;; }&lt;br /&gt;      if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;dns_check_record&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"fzzbcks.net"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) { print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Fzzbcks.net exists\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;; }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   Moving on, &lt;em&gt;dns_get_record()&lt;/em&gt; is a more complex version of &lt;em&gt;dns_check_record()&lt;/em&gt; - it returns an array of the information it found, which itself contains an array of each record found. With the record arrays, the two key elements are &lt;em&gt;target&lt;/em&gt; and &lt;em&gt;type -&lt;/em&gt; type returns the record type that was found, whether that be A, NS, etc, and target, when sent with a CNAME record, shows what the domain actually maps to. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   For example: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      var_dump&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;dns_get_record&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"www.microsoft.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   That simple script outputted the following information: &lt;/p&gt; &lt;div style="font-family: arial;" class="computeroutput"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;array(1) {&lt;br /&gt;      [0]=&gt;&lt;br /&gt;      array(5) {&lt;br /&gt;          ["host"]=&gt;&lt;br /&gt;          string(17) "www.microsoft.com"&lt;br /&gt;          ["type"]=&gt;&lt;br /&gt;          string(5) "CNAME"&lt;br /&gt;          ["target"]=&gt;&lt;br /&gt;          string(24) "www.microsoft.akadns.net"&lt;br /&gt;          ["class"]=&gt;&lt;br /&gt;          string(2) "IN"&lt;br /&gt;          ["ttl"]=&gt;&lt;br /&gt;          int(4568)&lt;br /&gt;      }&lt;br /&gt;  }&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; What it says is that www.microsoft.com is just a pointer to www.microsoft.akadns.net - while you might appear to browse around www.microsoft.com, you are really being redirected to www.microsoft.akadns.net. Note that "akadns.net" is a signature that the site is actually being provided through a company called Akamai, which specialises in worldwide load balancing for the Internet. Microsoft does not always use Akamai, often serving its content from in-house machines, so your results may vary. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-9155094145372447130?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/domain-resolution-functions.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-1578010871263210256</guid><pubDate>Fri, 20 Mar 2009 04:33:00 +0000</pubDate><atom:updated>2009-03-19T21:34:15.926-07:00</atom:updated><title>Sockets can be powerful</title><description>&lt;p style="font-family: arial;"&gt; OK, so a ROT13 system is not very helpful, so I would not be surprised if you were wondering whether sockets could be made to do anything &lt;em&gt;useful&lt;/em&gt; . Well, consider what socket applications you use - what relies on sockets to work? &lt;/p&gt; &lt;p style="font-family: arial;"&gt; One of the simplest systems is a web server - an application that listens for requests on a given port, and serves up the files that are asked for. Naturally web servers do a lot more than that - they have to receive POST data, handle file uploads, permissions, filters, and lots more, but we're only interested in the most basic task: serving files. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   Your average HTTP request will look like this: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GET /somefile.txt HTTP/1.1&lt;br /&gt;  HOST: www.foo.com&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; Out of all that, we can ignore everything but "/somefile.txt" - that is the file we need to serve up. So, our server waits listening for connections and requests, sending out files as appropriate. Each HTTP response needs to take a very specific format because HTTP splits its response into "header" and "content". The header part can contain several lines of header information, such as the name of the file being served, its size, its type, the name of the server, etc, but it always contains the HTTP response type. The content part is the file itself, and is separated from the header by two sets of carriage return/line lines. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; The HTTP response type is one line of text that contains the HTTP version being used (usually 1.0 or 1.1), followed by the status code of the response and a small amount of text explaining the status. The status code is meant for the web browser, whereas the text is meant for the person actually using it - browsers are under no obligation to display or indeed do anything with the text you send along with the status code. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; The content type is particularly important because it tells browsers how to handle the file being sent - this uses a standard known as Multipurpose Internet Mail Extensions (MIME) to define the exact type of data. Some of the various MIME types will be discussed in more detail later - for now you just need to know that the MIME type for HTML is "text/html", and for PNG images it is "image/png". &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   Without further ado, here is a very basic web server written using PHP: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $socket&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;= @&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_create_listen&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"8000"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Failed to create socket!\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          exit;&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      while (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;socket_accept&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;trim&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_read&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;4096&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;explode&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;" "&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;];&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fileinfo&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;pathinfo&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          switch (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fileinfo&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'extension'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;]) {&lt;br /&gt;              case&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"png"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$mime&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"image/png"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;                  break;&lt;br /&gt;              default:&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$mime&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"text/html"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"/"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"/index.html"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".$input"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;file_exists&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) &amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;is_readable&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Serving $input\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$contents&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;file_get_contents&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$output&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"HTTP/1.0 200 OK\r\nServer: APatchyServer\r\nConnection: close\r\nContent-Type: $mime\r\n\r\n$contents"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          } else {&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$contents&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"The file you requested does not exist. Sorry!"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$output&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"HTTP/1.0 404 OBJECT NOT FOUND\r\nServer: APatchyServer\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n$contents"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_write&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$output&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_close&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_close&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; If you start that script up, you should be able to get to it through your web browser by visiting http://localhost:8000. You will need to put a little content in there to make it work at its best - if you create a small HTML file with PNG pictures in, the server should be able to serve it all up to a web browser. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-1578010871263210256?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/sockets-can-be-powerful.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-2714727615680447896</guid><pubDate>Fri, 20 Mar 2009 04:32:00 +0000</pubDate><atom:updated>2009-03-19T21:33:26.589-07:00</atom:updated><title>Sockets can be servers</title><description>&lt;div class="funcprototypes"&gt;   &lt;p class="funcprototype"&gt;     resource &lt;strong&gt;socket_create_listen&lt;/strong&gt; ( int &lt;em&gt;port&lt;/em&gt; [, int &lt;em&gt;backlog&lt;/em&gt;])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     resource &lt;strong&gt;socket_accept&lt;/strong&gt; ( resource &lt;em&gt;socket&lt;/em&gt;)   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     int &lt;strong&gt;socket_write&lt;/strong&gt; ( resource &lt;em&gt;socket&lt;/em&gt;, int &lt;em&gt;length&lt;/em&gt; [, int &lt;em&gt;length&lt;/em&gt;])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     string &lt;strong&gt;socket_read&lt;/strong&gt; ( resource &lt;em&gt;socket&lt;/em&gt;, int &lt;em&gt;length&lt;/em&gt; [, int &lt;em&gt;type&lt;/em&gt;])   &lt;/p&gt;   &lt;p class="funcprototype"&gt;     void &lt;strong&gt;socket_close&lt;/strong&gt; ( resource &lt;em&gt;socket&lt;/em&gt;)   &lt;/p&gt; &lt;/div&gt; &lt;p&gt; We have just covered the basic use of sockets in PHP, and the next step is to move onto the advanced, more flexible sockets that allow you to create more advanced networking scripts with PHP. &lt;/p&gt; &lt;p&gt;   There are several functions of interest here: &lt;em&gt;socket_create_listen()&lt;/em&gt;, &lt;em&gt;socket_accept()&lt;/em&gt;, &lt;em&gt;socket_write()&lt;/em&gt;, &lt;em&gt;socket_read()&lt;/em&gt;, and &lt;em&gt;socket_close()&lt;/em&gt;. In order, those functions create and instruct a socket to listen on a given port, receive a client connecting to the socket, write text out to the client, read text sent by the client, and close the socket. &lt;/p&gt; &lt;p&gt;   The sockets system starts with &lt;em&gt;socket_create_listen()&lt;/em&gt;, which takes a port number to listen on as its only parameter. This function creates a socket, binds it to the port you specify, and returns a pointer to the socket it created or false if it failed. You will need the socket resource it returns for later functions, so you should always save it in a variable. If the function fails, it is likely because the port you specified is already being used, or perhaps because you have insufficient privileges to open the port. &lt;/p&gt; &lt;p&gt;   The &lt;em&gt;socket_accept()&lt;/em&gt; function takes the return value of &lt;em&gt;socket_create_listen()&lt;/em&gt; as it is only parameters, and returns a client connection - someone who connected to our port number. &lt;em&gt;Socket_accept()&lt;/em&gt; works by examining the queue of people waiting to be served, and taking the first client from there - if there are no clients waiting to be served, &lt;em&gt;socket_accept()&lt;/em&gt; will wait ("block") until a client &lt;em&gt;does&lt;/em&gt; become available, at which point it will return that. &lt;/p&gt; &lt;p&gt;   &lt;em&gt;Socket_write()&lt;/em&gt; takes two parameters, which are the client to write to and the value you want to write - this data is then sent through our socket to the client, as you would expect. Its partner, &lt;em&gt;socket_read()&lt;/em&gt;, also takes two parameters, which are the connection to read from, and the number of bytes to read. By using &lt;em&gt;socket_write()&lt;/em&gt; and &lt;em&gt;socket_read()&lt;/em&gt; together, you can fully interact with clients connecting to your socket. &lt;/p&gt; &lt;p&gt; Here is an example script that creates a ROT13 server - when people connect to it and send text, it responds with the ROT13 equivalent of their text. &lt;/p&gt; &lt;div class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $socket&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;= @&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_create_listen&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"12345"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Failed to create socket!\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          exit;&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      while (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;socket_accept&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$welcome&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"\nWelcome to the Amazing ROT13 Machine.\nType '!close' to close this connection, or type '!halt' to halt the server.\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_write&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$welcome&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          while (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;trim&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_read&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;256&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;              if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;'!close'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;                  break;&lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;              if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;'!halt'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_close&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;                  break&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$output&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;str_rot13&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) .&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_write&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$output&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;              print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Them: $input, Us: $output\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_close&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$client&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;socket_close&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$socket&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p&gt; Because this is going to serve data over a potentially infinite length of time, it is important you execute that script using the CLI SAPI, not your web browser. Once you have it running, bring up a new command-line window and enter the following: &lt;/p&gt; &lt;div class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;telnet localhost 12345&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p&gt; That should launch your telnet program, which is useful for forming simple connections to servers. All being well, you should receive the welcome message from the ROT13 server - try it out with a few words, then type !shutdown to finish. If you have followed correctly so far, you should see something like the picture below. &lt;/p&gt;  &lt;div class="image"&gt; &lt;img src="http://www.tuxradar.com/files/practicalphp/sockets.jpg" /&gt; &lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-2714727615680447896?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/sockets-can-be-servers.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-4854164703769303415</guid><pubDate>Fri, 20 Mar 2009 04:27:00 +0000</pubDate><atom:updated>2009-03-19T21:27:25.315-07:00</atom:updated><title>Sockets aren't all about HTTP</title><description>&lt;p style="font-family: arial;"&gt;   While receiving compressed content is not a particularly amazing thing to do with &lt;em&gt;fsockopen()&lt;/em&gt;, it should at least demonstrate the fact that it gives you a lot more control over your sockets than simply using &lt;em&gt;fopen()&lt;/em&gt;. For example, if we wanted to do something other than read HTTP, we just need to change the port number - here is a script that reads in Whois information about a site: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $fp&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fsockopen&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"whois.networksolutions.com"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;43&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fwrite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"microsoft.com\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          while (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;feof&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fread&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;256&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fclose&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      } else {&lt;br /&gt;          print&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Fatal error\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; It looks similar to the last one, as I am sure you can see. The difference is that this time we connect to the Whois database of Network Solutions, which contains registrar information for .com, .net, and .org domains, and we query it for information on microsoft.com. Port 43 is the "whois" port, used for these kind of queries, which means that the Network Solutions server is listening for clients who connect on port 43. As soon as we connect, we provide a domain name followed by a line return, which is part of the very basic Whois protocol - doing this signals to the Whois server that we want it to return Whois information on the server we specified. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; Give that script a try, although it is only for trial purposes alone - as you will see in the output, Network Solutions request that you don't use their Whois database as part of "high-volume, automated, electronic processes". Please remember that the Internet relies on a lot of co-operation between people, so respect their wishes! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-4854164703769303415?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/sockets-arent-all-about-http.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-2079166543145374729</guid><pubDate>Fri, 20 Mar 2009 04:25:00 +0000</pubDate><atom:updated>2009-03-19T21:26:33.490-07:00</atom:updated><title>Making a simple search Engine Using PHP</title><description>&lt;p style="font-family: arial;"&gt;   We've now looked at both &lt;em&gt;fopen()&lt;/em&gt; and &lt;em&gt;fsockopen()&lt;/em&gt;, both of which are great for reading in content from websites. However, thanks to the way streams work in PHP, you can read remote data in with a huge selection of functions - even down to the relatively lowly &lt;em&gt;file_get_contents()&lt;/em&gt;. To show off this functionality, I wrote a very simple search engine that spiders websites by pulling out hyperlinks and inserting data into a MySQL table. The code is very, very simple, and very naive - it's here to demonstrate a point, not be a perfect search engine, so please don't base your own efforts on it! &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $urls&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;= array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"http://www.slashdot.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$parsed&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;= array();&lt;br /&gt; &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sitesvisited&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_connect&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"localhost"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"phpuser"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"alm65z"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_select_db&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"phpdb"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"DROP TABLE simplesearch;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"CREATE TABLE simplesearch (URL CHAR(255), Contents TEXT);"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"ALTER TABLE simplesearch ADD FULLTEXT(Contents);"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      function&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;parse_site&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;() {&lt;br /&gt;          GLOBAL&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$urls&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$parsed&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$sitesvisited&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$newsite&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;array_shift&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$urls&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"\n Now parsing $newsite...\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// the @ is because not all URLs are valid, and we don't want&lt;br /&gt;          // lots of errors being printed out&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ourtext&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;= @&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;file_get_contents&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$newsite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ourtext&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) return;&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$newsite&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;addslashes&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$newsite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ourtext&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;addslashes&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ourtext&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"INSERT INTO simplesearch VALUES ('$newsite', '$ourtext');"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// this site has been successfully indexed; increment the counter&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sitesvisited&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// this extracts all hyperlinks in the document&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;preg_match_all&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"/http:\/\/[A-Z0-9_\-\.\/\?\#\=\&amp;amp;]*/i"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$ourtext&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;count&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;];&lt;br /&gt;              &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$nummatches&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;count&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Got $nummatches from $newsite\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;              foreach(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$matches&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;as&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// we want to ignore all these strings&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".exe"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".zip"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".rar"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".wmv"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".wav"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".mp3"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".sit"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".mov"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".avi"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".msi"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".rpm"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".rm"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".ram"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".asf"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".mpg"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".mpeg"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".tar"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".tgz"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".bz2"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".deb"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".pdf"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".jpg"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".jpeg"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".gif"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".tif"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".png"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".swf"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".svg"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".bmp"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".dtd"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".xml"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".js"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".vbs"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".css"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".ico"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;".rss"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"w3.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;   &lt;br /&gt; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// yes, these next two are very vague, but they do cut out&lt;br /&gt;                  // the vast majority of advertising links.  Like I said,&lt;br /&gt;                  // this indexer is far from perfect!&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"ads."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"ad."&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt; &lt;br /&gt;                  if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;stripos&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"doubleclick"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !==&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) continue;&lt;br /&gt; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// this URL looks safe&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;in_array&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$parsed&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;/span&gt; &lt;span style="color: rgb(255, 128, 0);"&gt;// we haven't already parsed this URL...&lt;br /&gt;                      &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;in_array&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$urls&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;/span&gt; &lt;span style="color: rgb(255, 128, 0);"&gt;// we don't already plan to parse this URL...&lt;br /&gt;                          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;array_push&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$urls&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$match&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;                          echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Adding $match...\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;                      }&lt;br /&gt;                  }&lt;br /&gt;              }&lt;br /&gt;          } else {&lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Got no matches from $newsite\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// add this site to the list we've visited already&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$parsed&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[] =&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;$newsite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;      }&lt;br /&gt; &lt;br /&gt;      while (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sitesvisited&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;&lt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;500&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;count&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$urls&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) !=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;parse_site&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;();&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// this stops us from overloading web servers&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;sleep&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; It's commented throughout, and so shouldn't be a problem to understand. That thing is pre-programmed to only index 500 URLs, but even that will take about ten minutes to do on a moderate connection because it is single-threaded. Once you have run the script, you'll need to be able to search through it - here's the corresponding file: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;if (isset(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_POST&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'criteria'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;])) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_connect&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"localhost"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"phpuser"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"alm65z"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_select_db&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"phpdb"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$criteria&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;addslashes&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$_POST&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'criteria'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;]);&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;mysql_query&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SELECT URL FROM simplesearch WHERE MATCH(Contents) AGAINST ('$criteria') ORDER BY URL ASC;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;mysql_num_rows&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Search found the following matches...&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;ul&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt; &lt;br /&gt;              while (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$r&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;mysql_fetch_assoc&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;                  &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;extract&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$r&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;EXTR_PREFIX_ALL&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;'find'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;                  echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;li&gt;&lt;a href="\"&gt;$find_URL&lt;/a&gt;&lt;/li&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;                 &lt;br /&gt;              }&lt;br /&gt; &lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"&lt;/ul&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          } else {&lt;br /&gt;              echo&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"No matches found for the criteria '$criteria'.&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;          }&lt;br /&gt;         &lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;  &lt;form method="post"&gt;&lt;br /&gt;  Search for: &lt;input type="text" name="criteria"&gt;&lt;br /&gt;  &lt;input type="submit" value="Go"&gt;&lt;br /&gt;  &lt;/form&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt; Anyway, that was just a short example to see how easy network programming is in PHP. Like I said, as a search engine it's basically as simplistic as they come: there are numerous problems in there. At the very least, a good search engine should at least cache the URLs of media items like MP3s and AVI files, instead of ignoring them like that script does. Furthermore, 500 URLs take up about 16MB of disk space, which is an enormous amount for so little payback. There are almost certainly faster regular expressions for link matching, too. So, if you really want to make your own search engine, look somewhere else! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-2079166543145374729?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/making-simple-search-engine-using-php.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-4418108069736266530</guid><pubDate>Fri, 20 Mar 2009 04:23:00 +0000</pubDate><atom:updated>2009-03-19T21:25:01.815-07:00</atom:updated><title>Sockets are files</title><description>&lt;h1 style="font-weight: normal; font-family: arial;"&gt;&lt;span style="font-size:85%;"&gt;resource &lt;strong&gt;fsockopen&lt;/strong&gt; ( string &lt;em&gt;target&lt;/em&gt;, int &lt;em&gt;port&lt;/em&gt; [, int &lt;em&gt;error_number&lt;/em&gt; [, string &lt;em&gt;error_string&lt;/em&gt; [, float &lt;em&gt;timeout&lt;/em&gt;]]])   &lt;/span&gt;&lt;/h1&gt;&lt;div style="font-family: arial;" class="funcprototypes"&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   The simplest way to work with sockets is using them as if they were files. In fact, if you are using Unix, sockets actually &lt;em&gt;are&lt;/em&gt; files, whereas in Windows this behaviour is just emulated. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   If you read about &lt;em&gt;file_get_contents()&lt;/em&gt; and &lt;em&gt;fopen()&lt;/em&gt; in the Files chapter, I have some great news for you: pretty much everything you learnt there can be applied directly to sockets, which means you can &lt;em&gt;fread()&lt;/em&gt; and &lt;em&gt;fwrite()&lt;/em&gt; to files as you would a normal file. Take a look at the following code: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $fp&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fsockopen&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"slashdot.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;80&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fwrite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"GET / HTTP/1.1\r\nHOST: slashdot.org\r\n\r\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          while (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;feof&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fread&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;256&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fclose&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      } else {&lt;br /&gt;          print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Fatal error\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   That script performs the same function as the original &lt;em&gt;fopen()&lt;/em&gt; script, with the exception that &lt;em&gt;fsockopen()&lt;/em&gt; is now being used. The original script was a lot shorter, if you remember, so why bother with &lt;em&gt;fsockopen()&lt;/em&gt; ? &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   Well, the &lt;em&gt;fopen()&lt;/em&gt; remote file handler uses PHP's stream functionality to automatically connect to the server and send the HTTP request using the GET method. On the other hand, &lt;em&gt;fsockopen()&lt;/em&gt; opens a server on the exact port we specify, then waits for us to specify what to do with it - we can, for example, send a hand-crafted HTTP request through. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   As it stands, we open a socket for server slashdot.org on port 80, then, after checking the &lt;em&gt;fsockopen()&lt;/em&gt; call has not returned false to signal failure, we write a HTTP GET request to the connection. Our HTTP request has two lines: first we send the GET request using &lt;em&gt;fwrite()&lt;/em&gt;, asking for /, which is the root of the server. Secondly, we specify that we want to read from the host slashdot.org, which is a requirement for virtually hosted machines and HTTP 1.1. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; With the HTTP request sent, we just need to wait for the response, the web page. This is done using a while loop - while there is more to be read from the file (socket), we &lt;em&gt;fread()&lt;/em&gt; in another 256 bytes and print it out. Once we are at the end of the "file", we close the socket and end the script. &lt;/p&gt; &lt;p style="font-family: arial;"&gt; Try that script out yourself - you should see the same output as the previous script. However, now that we have full control over the HTTP connection, we can alter our request to specify that we are able to receive compressed content. Try inputting this script and running it: &lt;/p&gt; &lt;div style="font-family: arial;" class="programlisting"&gt;   &lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;&lt;?php&lt;br /&gt;      $fp&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fsockopen&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"slashdot.org"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;80&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;      if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fwrite&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"GET / HTTP/1.1\r\nHOST: slashdot.org\r\nACCEPT-ENCODING: gzip\r\n\r\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt; &lt;br /&gt;          while (!&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;feof&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)) {&lt;br /&gt;              print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;fread&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;256&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;          }&lt;br /&gt; &lt;br /&gt;          &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;fclose&lt;/span&gt; &lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$fp&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;      } else {&lt;br /&gt;          print&lt;/span&gt; &lt;span style="color: rgb(221, 0, 0);"&gt;"Fatal error\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;      }&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 187);"&gt;?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt; &lt;/div&gt; &lt;p style="font-family: arial;"&gt;   Notice the &lt;em&gt;fwrite()&lt;/em&gt; call is longer this time, because it specifies that our script is able to receive gzipped (compressed) content, so running the script this time will output seeming garbage. &lt;/p&gt; &lt;p style="font-family: arial;"&gt;   &lt;strong&gt;If all you want to do is read in the contents of a web page, just put the URL inside a call to &lt;em&gt;file_get_contents()&lt;/em&gt;.&lt;/strong&gt; &lt;/p&gt; &lt;div style="font-family: arial;" class="caution"&gt;   &lt;p&gt; Author's Note: If you liked persistent database connections, you might also like persistent socket connections - the function &lt;em&gt;pfsockopen()&lt;/em&gt; takes the same parameters as &lt;em&gt;fsockopen()&lt;/em&gt;, but it remains open over requests.   &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-4418108069736266530?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/sockets-are-files.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-6652007978122122003</guid><pubDate>Fri, 20 Mar 2009 04:21:00 +0000</pubDate><atom:updated>2009-03-19T21:22:46.106-07:00</atom:updated><title>PHP Networks</title><description>&lt;span style="font-family: arial;"&gt;Networks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The Internet is really just one big network, albeit the largest and most convoluted one ever created, and there are a variety of different protocols that allow communication. The most common protocol is HTTP, followed by FTP, but there are literally dozens of others, each with their own specific purpose.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;PHP has a number of ways to work over a network - the most common protocols have special functions to make often-used functionality easy, but it is possible to use PHP to write any kind of data over any kind of protocol.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The topics covered in this chapter are:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      What sockets are, and basic socket use&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      How to use sockets outside of HTTP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      How to create a basic server using PHP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      Creating a web server&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      Helpful network-related functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      HTTP-specific and FTP-specific functions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;    *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;      The Curl library&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: arial;font-size:130%;" &gt;Sockets&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Surprising as this may come to some of you, your connection to the Internet is not handled by well-trained pixies with semaphore flags. Instead, things are much more detailed, involving protocols, ports, and sockets - these form the core of your connection to the Internet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;While it is out of the remit of this book to into too much detail about network infrastructure, you do at least need to know what protocols, ports, and sockets are. Protocols are like languages, defining how two computers can talk to each other, and there are hundreds of protocols to perform all varieties of operations - there is a protocol for file transfer (File Transfer Protocol, FTP), a protocol for transferring web pages (Hypertext Transfer Protocol, HTTP), a protocol for network management (Simple Network Management Protocol, SNMP), and many more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Each protocol has a set of ports that it uses - these are theoretical openings in your computer's Internet connection where clients can connect to, are numbered 1 to 65535, of which the first 1023 are considered reserved to administrative users. By default your PC "listens" to no ports, meaning that it ignores all incoming connections. However, if you run a web server, it will open up port 80 - this is the port for HTTP, where your web server will listen for requests for web pages. The first 1023 ports are mostly used already, which means if you want to use a port for a new service you have written, it is best that you use a number above 1024.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Sockets are the literal connectors between a port and a program, sort of how a plug socket connects an appliance to the electricity grid in your house. Management of sockets in PHP comes in two flavours: easy and hard. As per usual, the easy option is not as flexible as the hard option, but it is much faster to get started with. We are going to be covering both here because both have their own uses. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-6652007978122122003?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2009/03/php-networks.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-8673833747025533983</guid><pubDate>Wed, 30 Jan 2008 02:32:00 +0000</pubDate><atom:updated>2008-01-29T18:33:08.146-08:00</atom:updated><title>αναѕ¢яιρтѕ</title><description>write like this&lt;br /&gt;&lt;br /&gt;(̲̅:̲̅:̲̅|̲̅k̲̅u̲̅l̲̅d̲̅e̲̅e̲̅p̲̅|̲̅:̲̅:̲̅)&lt;br /&gt;&lt;br /&gt;javascript:var byX9=document.getElementsByTagName('textarea')[0];byX9.value=%22(̲̅:̲̅:̲̅|%22+byX9.value.replace(/|/g,%22̲̅%22)+%22|̲̅:̲̅:̲̅)%22;void(0);&lt;br /&gt;&lt;br /&gt;************&lt;br /&gt;write like this&lt;br /&gt;&lt;br /&gt;write:¦: ♥ :¦:like:¦: ♥ :¦:this:¦: ♥ :¦:&lt;br /&gt;&lt;br /&gt;javascript:cor=new Array('violet','orange','green');var z=0;txt=document.getElementsByTagName('textarea')[0]; txt.value=txt.value.replace(/\n/gi,'§ ');sp=txt.value.split(' ');txti='';for(l=0;l&lt;sp.length;l++){txti+="["+cor[z]+"]"+sp[l]+' ';z++;if(z==cor.length){z=0}}; txt.value=txti;txt.value=txt.value.replace(/\§/gi,'\n'); txt=document.getElementsByTagName('textarea')[0];txt.value=txt.value.replace(/ /gi,":¦: ♥ :¦:");void(0)&lt;br /&gt;&lt;br /&gt;**************&lt;br /&gt;Vertical Write&lt;br /&gt;&lt;br /&gt;w&lt;br /&gt;r&lt;br /&gt;i&lt;br /&gt;t&lt;br /&gt;e&lt;br /&gt;&lt;br /&gt;l&lt;br /&gt;i&lt;br /&gt;k&lt;br /&gt;e&lt;br /&gt;&lt;br /&gt;t&lt;br /&gt;h&lt;br /&gt;i&lt;br /&gt;s&lt;br /&gt;&lt;br /&gt;javascript:var a=document.getElementsByTagName('textarea')[0];a.value=a.value.replace(/|/g," \n ");void(0);javascript:cor=new Array('violet','red','orange','yellow','green','blue','navy','purple');var z=0;txt=document.getElementsByTagName('textarea')[0];txt.value=txt.value.replace(/(.)/gi,"§$1");txt.value=txt.value.replace(/\§ /gi," ");for(y=0;y&lt;txt.value.length;y++){txt.value=txt.value.replace(/\§/,'['+cor[z]+']');z++;if(z==cor.length){z=0}}void(0)&lt;br /&gt;&lt;br /&gt;*****************&lt;br /&gt;I m in Box&lt;br /&gt;&lt;br /&gt;[̲̅K̲̅U̲̅L̲̅D̲̅E̲̅E̲̅P̲̅]&lt;br /&gt;&lt;br /&gt;javascript:var byX9=document.getElementsByTagName('textarea')[0];byX9.value="["+byX9.value.replace(/|/g,"̲̅")+"]";void(0);&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-8673833747025533983?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2008/01/blog-post.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-3795294258582093215</guid><pubDate>Wed, 30 Jan 2008 02:31:00 +0000</pubDate><atom:updated>2008-01-29T18:32:04.755-08:00</atom:updated><title>Remove Brontok Virus Urself</title><description>Remove Brontok Virus Urself&lt;br /&gt;&lt;br /&gt;Remove Brontok Virus Urself&lt;br /&gt;its the most sticky virus ..&lt;br /&gt;u can Remove it&lt;br /&gt;be an ethical Hacker&lt;br /&gt;It works~~!&lt;br /&gt;Start ur computer in safe mode with command prompt and type the followinf command to enable registry editor:-&lt;br /&gt;&lt;br /&gt;reg delete HKCU\software\microsoft\windows\currentversion\policies\system /v "DisableRegistryTools"&lt;br /&gt;and run HKLM\software\microsoft\windows\currentversion\policies\system /v "DisableRegistryTools"&lt;br /&gt;&lt;br /&gt;after this ur registry editor is enable&lt;br /&gt;type explorer&lt;br /&gt;go to run and type regedit&lt;br /&gt;then follow the following path :-&lt;br /&gt;HKLM\Software\Microsoft\Windows\Currentversion\Run&lt;br /&gt;&lt;br /&gt;on the right side delete the entries which contain 'Brontok' and 'Tok-' words.&lt;br /&gt;&lt;br /&gt;after that restart ur system&lt;br /&gt;open registry editor and follow the path to enable folder option in tools menu&lt;br /&gt;&lt;br /&gt;HKCU\Software\Microsoft\Windows\Currentversion\Policies\Explorer\ 'NoFolderOption'&lt;br /&gt;delete this entry and restart ur computer&lt;br /&gt;&lt;br /&gt;and search *.exe files in all drives (search in hidden files also)&lt;br /&gt;remove all files which are display likes as folder icon.&lt;br /&gt;&lt;br /&gt;ur computer is completely free from virus brontok&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-3795294258582093215?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2008/01/remove-brontok-virus-urself.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-6865381993772451828</guid><pubDate>Wed, 30 Jan 2008 02:30:00 +0000</pubDate><atom:updated>2008-01-29T18:31:24.593-08:00</atom:updated><title>how u get u'r friends e-mail and there name in....</title><description>&lt;h3 class="smller"&gt;how u get u'r friends e-mail and there name in....&lt;/h3&gt;   &lt;div class="para"&gt; &lt;p&gt;&lt;span style="font-size:130%;color:#ff0000;"&gt;clike on photo  and write and save it and see&lt;/span&gt;&lt;/p&gt;&lt;p&gt;   &amp;amp;nbsp&lt;wbr&gt;;      &amp;amp;nb&lt;wbr&gt;sp;      &amp;amp;&lt;wbr&gt;nbsp;     &amp;amp;nbsp&lt;wbr&gt;;      &amp;amp;nb&lt;wbr&gt;sp;      &amp;amp;&lt;wbr&gt;nbsp; &lt;a href="&lt;a href=" target="_blank"&gt;http://www.orkut.com/contacts.CSV&lt;/a&gt;&lt;wbr&gt;"&gt;&lt;img src="&lt;a href=" target="_blank" /&gt;http://img3.orkut.com/images/mediu&lt;wbr&gt;m/1201438482/60332218.jpg&lt;/a&gt;" alt="" width="536" height="234" /&gt;&lt;/a&gt;&lt;a href="&lt;a href=" target="_blank"&gt;http://www.orkut.com/contacts.CSV&lt;/a&gt;&lt;wbr&gt;"&gt;&lt;/a&gt; &lt;/p&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-6865381993772451828?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2008/01/how-u-get-ur-friends-e-mail-and-there.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-7879732865024292473</guid><pubDate>Mon, 24 Sep 2007 14:36:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.074-07:00</atom:updated><title>Remove shortcut arrow from desktop icons</title><description>Here's how you can remove those shortcut arrows from your desktop icons in Windows XP.&lt;br /&gt;&lt;br /&gt;1. Start regedit.&lt;br /&gt;2. Navigate to HKEY_CLASSES_ROOTlnkfile&lt;br /&gt;3. Delete the IsShortcut registry value.&lt;br /&gt;&lt;br /&gt;You may need to restart Windows XP.&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-7879732865024292473?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/remove-shortcut-arrow-from-desktop.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-7959713970878712879</guid><pubDate>Mon, 24 Sep 2007 14:35:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.074-07:00</atom:updated><title>Microsoft Knowledge Base Articles Relating to the Setup XP</title><description>&lt;div align="center"&gt;  &lt;table style="border: 0.75pt outset white; background: white none repeat scroll 0% 50%; width: 75%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" bgcolor="white" border="1" cellpadding="0" cellspacing="0" width="75%"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td style="border: 0.75pt inset white; padding: 2.25pt;"&gt;   &lt;p style="margin-bottom: 12pt; text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Microsoft Knowledge Base Articles   Relating to the Setup XP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;   &lt;div align="center"&gt;   &lt;table style="border: 0.75pt outset black; width: 98%;" border="1" cellpadding="0" cellspacing="0" width="98%"&gt;    &lt;tbody&gt;&lt;tr&gt;     &lt;td colspan="2" style="border: 0.75pt inset black; padding: 0in;"&gt;     &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana; color: rgb(255, 47, 47);"&gt;  XP SETUP -- Microsoft Error codes &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal"&gt; &lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt; &lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q161703.htm" target="_blank"&gt;Q161703&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;"Stop:     0x0000001E" Error Message During Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q216251.htm" target="_blank"&gt;Q216251&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;How to     Specify a Specific or Third-Party HAL During Windows Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q217073.htm" target="_blank"&gt;Q217073 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     Setup Hangs When "Setup Is Starting Windows" Screen Appears &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q220845.htm" target="_blank"&gt;Q220845&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Adding     Third-Party or Updated Driver During Windows Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q221447.htm" target="_blank"&gt;Q221447 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Autologon     and AutoLogonCount Parameters for Windows Unattended Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q222939.htm" target="_blank"&gt;Q222939 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     Setup Does Not Prompt for Installation Folder &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q225125.htm" target="_blank"&gt;Q225125&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     Setup Does Not Prompt for Installation Folder &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q225125.htm" target="_blank"&gt;Q225125 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Limited     OEM Driver Support with F6 During Windows Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q238955.htm" target="_blank"&gt;Q238955&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;How to     Use Cmdlines.txt File During Sysprep.exe Setup Wizard &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q242380.htm" target="_blank"&gt;Q242380 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;How to     Use a Command Prompt During GUI-Mode Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q281652.htm" target="_blank"&gt;Q281652 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Error     Message "Setup Was Unable to Build the List of Files to Be     Copied" During a Windows XP Unattended Installation &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q281653.htm" target="_blank"&gt;Q281653 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Setup     Appears to Stop Responding at the Registering Components Screen During an     Unattended Installation &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q282008.htm" target="_blank"&gt;Q282008&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Partitions     Created by Using PartitionMagic 5.0 Appear Inactive in Windows XP Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q282296.htm" target="_blank"&gt;Q282296 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Setup     from the 16-Bit Winnt.exe File Continues in an Endless Loop &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q283079.htm" target="_blank"&gt;Q283079&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;No     Mouse or Keyboard Response During Sysprep Mini-Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q283240.htm" target="_blank"&gt;Q283240 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Quitting     Text-Mode Setup Does Not Restart the Computer &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q283332.htm" target="_blank"&gt;Q283332&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Setup     Stops Responding Upon Restart After You Install Windows XP to a Partition     on an IA64 Computer &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q287546.htm" target="_blank"&gt;Q287546&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Missing     Files" Error Message During Setup When Deploying Windows XP Images &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q289657.htm" target="_blank"&gt;Q289657&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Out of     Box Experience (OOBE) Does Not Run After Setup Completes &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q293281.htm" target="_blank"&gt;Q293281&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Unpartitioned     Space Remains When Creating a Partition During Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q293834.htm" target="_blank"&gt;Q293834 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;User     Accounts That You Create During Setup Are Administrator Account Types &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q295116.htm" target="_blank"&gt;Q295116&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;A     Description of the Windows XP Setup Function Keys &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q296673.htm" target="_blank"&gt;Q296673&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     Services for UNIX 2.0 Setup Does Not Work on Windows XP&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q296814.htm" target="_blank"&gt;Q296814&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Setup     Stops Responding (Hangs) During File Copy &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q297837.htm" target="_blank"&gt;Q297837&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;The     CD-ROM Drive May Not Be Accessible During Setup on Computers That Have     DirectCD Installed &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q301340.htm" target="_blank"&gt;Q301340&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;During     Setup You Are Unable to Format a Partition with a File Allocation Table     Format &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q301933.htm" target="_blank"&gt;Q301933 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Error     Message: Setup Was Unable to Build the List of Files to Be Copied. The     System Cannot Find the Path... &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q302686.htm" target="_blank"&gt;Q302686 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Differences     Between a Quick Format and Format During Windows XP Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q303466.htm" target="_blank"&gt;Q303466&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Master     Boot Record Disks Cannot Be Converted to GPT by Means of an Unattended     Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q305746.htm" target="_blank"&gt;Q305746&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     XP Setup Halts When You Start Installation from Within Windows 95 &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q305883.htm" target="_blank"&gt;Q305883 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     Upgrade Advisor Quits Abruptly During System Compatibility Check and No     Report Appears &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q307099.htm" target="_blank"&gt;Q307099 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;STOP     7b Error Occurs When You Press F6 to Load Drivers During Unattended Windows     XP Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q307316.htm" target="_blank"&gt;Q307316 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Volume     License Product ID Is Revealed During the Sysprep.exe Mini-Setup Wizard &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q309800.htm" target="_blank"&gt;Q309800 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Serial     Mouse Is Not Detected During Windows XP Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q310637.htm" target="_blank"&gt;Q310637&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Troubleshooting     Invalid CD Key Error Message During Windows XP Setup &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 13%;" width="13%"&gt;     &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;&lt;a href="http://support.microsoft.com/support/kb/articles/Q310760.htm" target="_blank"&gt;Q310760&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;     &lt;td style="border: 0.75pt inset black; padding: 0in; width: 87%;" width="87%"&gt;     &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 7.5pt; font-family: Verdana;"&gt;Windows     XP Does Not Respond at "Setup Is Starting Windows XP" Message &lt;/span&gt;&lt;/p&gt;     &lt;/td&gt;    &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;   &lt;/div&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;   &lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-7959713970878712879?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/microsoft-knowledge-base-articles.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-6992176214070118293</guid><pubDate>Sun, 16 Sep 2007 05:14:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.074-07:00</atom:updated><title>GROUPING WINDOWS</title><description>You can force your taskbar to group windows. Any application that has any number you decide of windows open will automatically cluster, regardless of how full your taskbar is. To set this: Start regedit, expand HKEY_CURRENT_USER and in Software – Microsoft – Windows – CurrentVersion – Explorer - Advanced, and create a REG_DWORD with the name TaskbarGroupSize and the value you want to reach before the windows are clustered together on the taskbar. (This modification requires a logoff to work).&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-6992176214070118293?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/grouping-windows.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-3857306216048381779</guid><pubDate>Sun, 16 Sep 2007 05:12:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.074-07:00</atom:updated><title>MUST BUY QUAD CORE!!!!!!!!!!!</title><description>&lt;h3 class="smller"&gt;   &lt;/h3&gt;   &lt;div class="ohtmlParent ohtml" id="previewContent"&gt;   &lt;a href="http://3.bp.blogspot.com/_mWfWShVNnCY/RjYWZmlclHI/AAAAAAAAABM/6s6Blf1CEmg/s1600-h/quad.JPG" target="_blank"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right;" src="http://3.bp.blogspot.com/_mWfWShVNnCY/RjYWZmlclHI/AAAAAAAAABM/6s6Blf1CEmg/s320/quad.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_mWfWShVNnCY/RjYWOmlclGI/AAAAAAAAABE/STaVDKxyPSc/s1600-h/core2quad.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left;" src="http://3.bp.blogspot.com/_mWfWShVNnCY/RjYWOmlclGI/AAAAAAAAABE/STaVDKxyPSc/s320/core2quad.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Intel’s most advanced processor just got an upgrade to the power of four—four processing cores for the ultimate in demanding entertainment&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Up to 54% better performance for intense multimedia applications, streaming movies, music, and more with powerful Intel quad-core technology¹&lt;/li&gt;&lt;li&gt;Up to 53% better performance when enjoying immersive 3-D gaming²&lt;/li&gt;&lt;li&gt;Up to 79% faster performance for highly-threaded applications when creating multimedia and 3-D content³&lt;/li&gt;&lt;li&gt;Up to 8MB of L2 cache and 1066 MHz Front Side Bus for an unrivaled multitasking experience&lt;h2&gt;Quad-Core Intel® Xeon® processor 5300 series&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;Breakthrough performance from the world's first quad-core processor for mainstream servers—faster, more powerful, and more efficient&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;Great performance with energy efficiency&lt;/li&gt;&lt;li&gt;Run applications with a smaller footprint&lt;/li&gt;&lt;li&gt;Up to 50% better performance than Dual-Core Intel® Xeon® processor 5100 series within the same power envelope^&lt;/li&gt;&lt;li&gt;Delivers the multitasking performance you need to maximize your virtualization efforts—enabling your enterprise applications to be responsive, even as you consolidate server resources&lt;h2&gt;Intel® Core™2 Extreme quad-core processor&lt;/h2&gt; &lt;p&gt;&lt;strong&gt;The world's best desktop processor for multimedia applications and the first to quad-core∇&lt;/strong&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;Up to 80% faster performance for highly-threaded appsΩ&lt;/li&gt;&lt;li&gt;Four processing cores to handle massive throughput&lt;/li&gt;&lt;li&gt;Based on leading Intel® Core™ microarchitecture, industry-first 8MB total cache&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-3857306216048381779?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/must-buy-quad-core.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mWfWShVNnCY/RjYWZmlclHI/AAAAAAAAABM/6s6Blf1CEmg/s72-c/quad.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-2244065003221945729</guid><pubDate>Sun, 16 Sep 2007 05:12:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.074-07:00</atom:updated><title>BEST GAMING MOTHERBOARD</title><description>&lt;h3 class="smller"&gt;   &lt;/h3&gt;   &lt;div class="ohtmlParent ohtml" id="previewContent"&gt;   &lt;a href="http://1.bp.blogspot.com/_mWfWShVNnCY/RjYYXGlclII/AAAAAAAAABU/f2APgqB43D0/s1600-h/intel+d975xbx2.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right;" src="http://1.bp.blogspot.com/_mWfWShVNnCY/RjYYXGlclII/AAAAAAAAABU/f2APgqB43D0/s320/intel+d975xbx2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;BEST GAMING MOTHERBOARD&lt;br /&gt;&lt;br /&gt;If you've got the POWER…the SPEED…the PERFORMANCE on your team, then you've got the WINNING EDGE.&lt;br /&gt;&lt;br /&gt;With the Intel® Desktop Board D975XBX2, supporting the Intel® Core™ 2 Extreme processor, your desktop PC will become the ultimate weapon. You will scream through the latest games, level after level.&lt;br /&gt;&lt;br /&gt;Add the world's best gaming processor and the D975XBX2 to your game strategy - a combination so BAD that it's GOOD.&lt;br /&gt;Eight USB 2.0 ports&lt;br /&gt;Four Serial ATA interfaces with RAID support (four additional interfaces available with optional discrete RAID controller)&lt;br /&gt;One parallel ATA IDE interface with UDMA 33, ATA-66/100 support&lt;br /&gt;One diskette drive interface&lt;br /&gt;One serial port&lt;br /&gt;One parallel port&lt;br /&gt;PS/2* keyboard and mouse ports   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-2244065003221945729?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/best-gaming-motherboard.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mWfWShVNnCY/RjYYXGlclII/AAAAAAAAABU/f2APgqB43D0/s72-c/intel+d975xbx2.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-3337249253445343883</guid><pubDate>Sun, 16 Sep 2007 05:10:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.075-07:00</atom:updated><title>THE GAMEEE!!THOPHILE!!!!!! (A DREAM)</title><description>&lt;h3 class="smller"&gt;   &lt;/h3&gt;   &lt;div class="ohtmlParent ohtml" id="previewContent"&gt;   &lt;a href="http://3.bp.blogspot.com/_mWfWShVNnCY/RjwdMGlclNI/AAAAAAAAACA/yCcPxal_XD8/s1600-h/cpu.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right;" src="http://3.bp.blogspot.com/_mWfWShVNnCY/RjwdMGlclNI/AAAAAAAAACA/yCcPxal_XD8/s320/cpu.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is what all gamers dream about or is it more than your dreams.&lt;br /&gt;THE EXTRA ORDINARY क्पू&lt;br /&gt;The motherboard: P5N32-E SLI Socket T (LGA 775) by ASUS&lt;br /&gt;&lt;br /&gt;This motherboard represents the latest high performance gaming platform from the industry leader in gaming motherboards. The P5N32-E SLI is the first SLI compatible motherboard with support for Intel's new Quad-core super high performance CPU. With SLI and Quad-core on the same motherboard, you'll see framerates like you've never seen before even on extremely large screen displays and high detail settings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Overclocking Inside&lt;br /&gt;Inject "nitrous oxide" into your CPU! Your WidowPC system comes to you overclocked by some of the industry's top experts. Nobody speeds up your computer like we do. You buy the latest hardware because you want the fastest thing on the block. Well, this is the latest hardware on adrenaline!&lt;br /&gt;&lt;br /&gt;Connected, Intelligent and Secure&lt;br /&gt;The integrated dual Gigabit LAN design allows a PC to serve as a network gateway for managing traffic between two separate networks. This capability ensures rapid transfer of data from WAN to LAN without any added arbitration or latency.&lt;br /&gt;&lt;br /&gt;Hard Specs&lt;br /&gt;&lt;br /&gt;* 1 SLI selector card connector&lt;br /&gt;* 4 184-pin DIMM sockets support max. 4GB DDR400/333/266 ECC/nonECC unbuffered DDR SDRAM memory&lt;br /&gt;* Dual channel memory architecture&lt;br /&gt;* 2 PCI Express x16 slots (SLI mode : x8 , x8)&lt;br /&gt;* 3 PCI slots&lt;br /&gt;* 2 IEEE 1394 FireWire Port (Mini DC in Jack)&lt;br /&gt;* Fast Infrared (FIR), IrDA 1.1 Compliant, Support 4M Bit FIR&lt;br /&gt;* 4 USB 2.0 ports&lt;br /&gt;* 1 serial port&lt;br /&gt;* 1 parallel port with ECP/EPP support&lt;br /&gt;* 1 each, keyboard and mouse port&lt;br /&gt;* 5 audio jacks for optical, line-out, line-in, microphone-in, and 8 channel audio S/PDIF&lt;br /&gt;* 2 RJ45 10/100/1000 Mbps ethernet LAN ports   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-3337249253445343883?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/gameeethophile-dream.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mWfWShVNnCY/RjwdMGlclNI/AAAAAAAAACA/yCcPxal_XD8/s72-c/cpu.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-1998012634357980990</guid><pubDate>Sun, 16 Sep 2007 05:08:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.075-07:00</atom:updated><title>FUN VIRUS!!!!!!!!!!!!</title><description>&lt;h3 class="smller"&gt;   &lt;/h3&gt;   &lt;div class="ohtmlParent ohtml" id="previewContent"&gt;   &lt;a href="http://2.bp.blogspot.com/_mWfWShVNnCY/Rm9oGs5qyBI/AAAAAAAAACc/cnuRpnAGRrE/s1600-h/virus.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left;" src="http://2.bp.blogspot.com/_mWfWShVNnCY/Rm9oGs5qyBI/AAAAAAAAACc/cnuRpnAGRrE/s320/virus.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_mWfWShVNnCY/RksRYpLeSzI/AAAAAAAAACU/Als-7aNIv7E/s1600-h/missuse.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left;" src="http://2.bp.blogspot.com/_mWfWShVNnCY/RksRYpLeSzI/AAAAAAAAACU/Als-7aNIv7E/s320/missuse.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;THIS HERE IS A FAKE VIRUS I HAVE CREATED . It is only for Educational purpose.&lt;br /&gt;So please dont use to make anyone lOOse his temper.&lt;br /&gt;This is a virus which displays message on your computer screen after double clicking on it&lt;br /&gt;that there is a virus in your pc please format it or it will format after reboot. so dont be afraid yu can either press&lt;br /&gt;yes or no nothing will happen. This is just for fun so go on guys and download the virus from the link below and plzzz comment&lt;br /&gt;on how did you find it if you want to learn the making of it plzzz email me at the above address :&lt;br /&gt;&lt;br /&gt;DOWNLOAD LINK------&gt;&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sendspace.com/file/lcwkre" target="_blank"&gt;http://www.sendspace.com/file/lcwkre&lt;/a&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-1998012634357980990?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/fun-virus.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_mWfWShVNnCY/Rm9oGs5qyBI/AAAAAAAAACc/cnuRpnAGRrE/s72-c/virus.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4782784888239614103.post-1411128925124715215</guid><pubDate>Sun, 16 Sep 2007 05:07:00 +0000</pubDate><atom:updated>2007-10-13T05:12:35.075-07:00</atom:updated><title>x box !!!!!!</title><description>&lt;h3 class="smller"&gt;   &lt;/h3&gt;   &lt;div class="ohtmlParent ohtml" id="previewContent"&gt;   &lt;a href="http://4.bp.blogspot.com/_mWfWShVNnCY/Rm_ZKM5qyCI/AAAAAAAAACk/3ZlmxTXNh5s/s1600-h/x+box+6.jpg" target="_blank"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left;" src="http://4.bp.blogspot.com/_mWfWShVNnCY/Rm_ZKM5qyCI/AAAAAAAAACk/3ZlmxTXNh5s/s320/x+box+6.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Manufacturer Microsoft&lt;br /&gt;Type Video game console&lt;br /&gt;Generation Seventh generation era&lt;br /&gt;First available November 22, 2005 (details)&lt;br /&gt;Controller input 4 maximum (wired or wireless or combination of either)&lt;br /&gt;Connectivity 3 × USB 2.0&lt;br /&gt;Online service Xbox Live&lt;br /&gt;Units sold Worldwide: 10.4 million shipped as of December 31, 2006[1][2]&lt;br /&gt;&lt;br /&gt;United States: 4.5 million consumer sales as of December 31, 2006.[3]&lt;br /&gt;Japan: 330,091 consumer sales as of March 4, 2007.[4]&lt;br /&gt;Top-selling game Gears of War[5]&lt;br /&gt;Backward&lt;br /&gt;compatibility 336 original Xbox games (requires hard drive)&lt;br /&gt;Predecessor Xbox   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Feed ME&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/4782784888239614103-1411128925124715215?l=mytechblogisbest.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://mytechblogisbest.blogspot.com/2007/09/x-box.html</link><author>kuldeepsingh.sadioura@gmail.com (kuldeep singh sadioura)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mWfWShVNnCY/Rm_ZKM5qyCI/AAAAAAAAACk/3ZlmxTXNh5s/s72-c/x+box+6.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>