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

<channel>
	<title>php Archives - Danny Herran</title>
	<atom:link href="https://dannyherran.com/tag/php-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://dannyherran.com/tag/php-2/</link>
	<description>Coding is fun</description>
	<lastBuildDate>Sat, 17 May 2025 22:50:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://dannyherran.com/wp-content/uploads/2025/05/favicon.png</url>
	<title>php Archives - Danny Herran</title>
	<link>https://dannyherran.com/tag/php-2/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Laravel Sanctum optional route authentication and guard selection</title>
		<link>https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/</link>
					<comments>https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/#respond</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Tue, 18 Jan 2022 22:25:05 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=925</guid>

					<description><![CDATA[<p>By default, Laravel Sanctum token authentication will either completely block access to protected routes or allow it at the expense of not being able to detect if the user is logged in. However, there are valid scenarios whereby a route should be accessible to guests and at the same time allow bearer token authentication. One [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/">Laravel Sanctum optional route authentication and guard selection</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2022/01/laravel-sanctum-optional-route-authentication-guard/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel reCAPTCHA v2 Middleware in 3 minutes</title>
		<link>https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/</link>
					<comments>https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/#respond</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Thu, 05 Nov 2020 17:43:50 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=879</guid>

					<description><![CDATA[<p>I needed to add reCAPTCHA v2 to a couple of forms and most of the results on Google pointed to these large Composer packages that were simply too much. This article will cover how to do create a new Laravel Middleware to validate reCAPTCHA v2 requests with just a few lines of code. Time to [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/">Laravel reCAPTCHA v2 Middleware in 3 minutes</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2020/11/laravel-recaptcha-v2-middleware/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel Fractal pagination with simplePaginate</title>
		<link>https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/</link>
					<comments>https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/#respond</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Fri, 08 Mar 2019 18:29:30 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[fractal]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=845</guid>

					<description><![CDATA[<p>By default Fractal has native support for Laravel::paginate. Those using simplePaginate() have to resort to either using Fractal Cursors or build their own adapter. In this post, we are going to quickly build an adapter that fully supports Laravel::simplePaginate. This tutorial assumes you are using the amazing Laravel Fractal wrapper provided by the guys at [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/">Laravel Fractal pagination with simplePaginate</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2019/03/laravel-fractal-simplepaginate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>This is how you upgrade (or downgrade) the PHP version on EasyPHP for Windows</title>
		<link>https://dannyherran.com/2015/11/this-is-how-you-upgrade-the-php-version-on-easyphp-for-windows/</link>
					<comments>https://dannyherran.com/2015/11/this-is-how-you-upgrade-the-php-version-on-easyphp-for-windows/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Wed, 18 Nov 2015 14:59:27 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[easyphp]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=757</guid>

					<description><![CDATA[<p>Since August 2015, the EasyPHP developers have moved their modules into a called &#8220;Warehouse&#8221; in which they will host up to date modules for their famous WAMP server. This Warehouse is now subscription based, and if you want to download a module, say, the latest or an old PHP version, you will need to pay [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2015/11/this-is-how-you-upgrade-the-php-version-on-easyphp-for-windows/">This is how you upgrade (or downgrade) the PHP version on EasyPHP for Windows</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2015/11/this-is-how-you-upgrade-the-php-version-on-easyphp-for-windows/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Seamlessly validate forms and file uploads with CodeIgniter</title>
		<link>https://dannyherran.com/2014/07/validate-forms-file-uploads-with-codeigniter/</link>
					<comments>https://dannyherran.com/2014/07/validate-forms-file-uploads-with-codeigniter/#respond</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Sat, 12 Jul 2014 17:39:57 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=361</guid>

					<description><![CDATA[<p>The Form Validation class is great to validate simple input fields such as textareas, checkboxes, text fields, etc. But what about file inputs? If you have a mix of text and file inputs, your controller can get messy if you try to validate both. Lets take a look at a neat solution that only involves [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2014/07/validate-forms-file-uploads-with-codeigniter/">Seamlessly validate forms and file uploads with CodeIgniter</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2014/07/validate-forms-file-uploads-with-codeigniter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>This is how it all started</title>
		<link>https://dannyherran.com/2013/09/this-is-how-it-all-started/</link>
					<comments>https://dannyherran.com/2013/09/this-is-how-it-all-started/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Fri, 13 Sep 2013 13:18:40 +0000</pubDate>
				<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[bachelor]]></category>
		<category><![CDATA[college degree]]></category>
		<category><![CDATA[cpuzone]]></category>
		<category><![CDATA[fashmatch]]></category>
		<category><![CDATA[gmedia]]></category>
		<category><![CDATA[ingeniarte]]></category>
		<category><![CDATA[metropoliglobal]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pokemon]]></category>
		<category><![CDATA[teenager]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=397</guid>

					<description><![CDATA[<p>In the following article I want to relate how I started in the programming and web development industry, how I learned to code and build websites from scratch.&#160;Why did I write this you may ask? So I don&#8217;t forget. Time makes you forget things. My 28th birthday was close and I wanted to keep track [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2013/09/this-is-how-it-all-started/">This is how it all started</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2013/09/this-is-how-it-all-started/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>How to load and use SimplePie 1.3+ with CodeIgniter 2.1+</title>
		<link>https://dannyherran.com/2013/06/how-to-load-and-use-simplepie-1-3-with-codeigniter-2-1/</link>
					<comments>https://dannyherran.com/2013/06/how-to-load-and-use-simplepie-1-3-with-codeigniter-2-1/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Wed, 19 Jun 2013 00:10:32 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[simplepie]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=382</guid>

					<description><![CDATA[<p>The famous RSS parser, SimplePie, has changed a few rules in the last couple of versions. The previous methods used to install the library in CodeIgniter are now obsolete. Lets take a look at the new method to get it working in just 5 minutes. 1. Download SimplePie: http://simplepie.org/downloads/ 2. Inside ./application/third_party/ create a new [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2013/06/how-to-load-and-use-simplepie-1-3-with-codeigniter-2-1/">How to load and use SimplePie 1.3+ with CodeIgniter 2.1+</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2013/06/how-to-load-and-use-simplepie-1-3-with-codeigniter-2-1/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>How to force a cache refresh on CSS and JavaScript files with PHP?</title>
		<link>https://dannyherran.com/2012/12/how-to-automatically-force-a-cache-refresh-on-css-and-javascript-files-with-php/</link>
					<comments>https://dannyherran.com/2012/12/how-to-automatically-force-a-cache-refresh-on-css-and-javascript-files-with-php/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Sun, 30 Dec 2012 18:41:16 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=365</guid>

					<description><![CDATA[<p>There is your client, complaining that they can&#8217;t see the changes you just made to their website. You explain them that they need to delete their browser cache in order to properly visualize the modifications. They said they don&#8217;t know how, and this is when you lose your patience and decide for a more radical [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2012/12/how-to-automatically-force-a-cache-refresh-on-css-and-javascript-files-with-php/">How to force a cache refresh on CSS and JavaScript files with PHP?</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2012/12/how-to-automatically-force-a-cache-refresh-on-css-and-javascript-files-with-php/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Mobile browser detection for WordPress &#8211; embedded is_mobile() function</title>
		<link>https://dannyherran.com/2012/03/mobile-browser-detection-for-wordpress-embedded-is_mobile-function/</link>
					<comments>https://dannyherran.com/2012/03/mobile-browser-detection-for-wordpress-embedded-is_mobile-function/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Wed, 07 Mar 2012 16:06:53 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[dumbphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[smartphones]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=342</guid>

					<description><![CDATA[<p>Lets face it. Responsive design is here to stay and it is the solution to all of our nightmares regarding mobile web design. For those who are not aware of this technique, I invite you to read my other post where I explain what it is. But lets get to the point. Sometimes we need [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2012/03/mobile-browser-detection-for-wordpress-embedded-is_mobile-function/">Mobile browser detection for WordPress &#8211; embedded is_mobile() function</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2012/03/mobile-browser-detection-for-wordpress-embedded-is_mobile-function/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Finding unique array combinations with PHP (permutations)</title>
		<link>https://dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/</link>
					<comments>https://dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Thu, 23 Jun 2011 23:08:01 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[iterations]]></category>
		<category><![CDATA[permutations]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=302</guid>

					<description><![CDATA[<p>I was developing a website where people would place horse bets and the system should be able to calculate all the possible permutations based on the user selection. That means: finding all the possible combinations in a two dimensional array. I found a couple of functions but none of them would keep the array keys [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/">Finding unique array combinations with PHP (permutations)</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/06/finding-unique-array-combinations-with-php-permutations/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Error Validation Class for CodeIgniter Reactor 2.0</title>
		<link>https://dannyherran.com/2011/05/error-validation-class-for-codeigniter-reactor-2-0/</link>
					<comments>https://dannyherran.com/2011/05/error-validation-class-for-codeigniter-reactor-2-0/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Wed, 04 May 2011 01:34:48 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[handling]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=241</guid>

					<description><![CDATA[<p>CodeIgniter lacks of an error handling class for custom errors. The Form Validation class is very nice for forms, the logs are pretty useful as well, but what happens when we need to handle our own errors?. Currently there is no official solution for this so I decided to take the matter in my own [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/05/error-validation-class-for-codeigniter-reactor-2-0/">Error Validation Class for CodeIgniter Reactor 2.0</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/05/error-validation-class-for-codeigniter-reactor-2-0/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Exporting your MySQL table data with PHPExcel + CodeIgniter</title>
		<link>https://dannyherran.com/2011/03/exporting-your-mysql-table-data-with-phpexcel-codeigniter/</link>
					<comments>https://dannyherran.com/2011/03/exporting-your-mysql-table-data-with-phpexcel-codeigniter/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Tue, 08 Mar 2011 17:24:58 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[csv]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=207</guid>

					<description><![CDATA[<p>Most of the time my clients need to download data from their database tables. Exporting to CSV is a pain in the rear for users and it leads to confusion (you know the colon and semicolon stuff). Today, I decided to make a very small controller that is portable and efficient for exporting full MySQL [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/03/exporting-your-mysql-table-data-with-phpexcel-codeigniter/">Exporting your MySQL table data with PHPExcel + CodeIgniter</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/03/exporting-your-mysql-table-data-with-phpexcel-codeigniter/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Facebook PHP SDK and CodeIgniter for basic user authentication</title>
		<link>https://dannyherran.com/2011/02/facebook-php-sdk-and-codeigniter-for-basic-user-authentication/</link>
					<comments>https://dannyherran.com/2011/02/facebook-php-sdk-and-codeigniter-for-basic-user-authentication/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Thu, 24 Feb 2011 18:16:56 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=185</guid>

					<description><![CDATA[<p>With CodeIgniter 2, plugins are no longer an option. Usually you would just add the Facebook PHP SDK as a plugin and you were good to go, but now, you need to make a little modification to the SDK in order to use Facebook Connect on your CodeIgniter application. Lets start by explaining what is, [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/02/facebook-php-sdk-and-codeigniter-for-basic-user-authentication/">Facebook PHP SDK and CodeIgniter for basic user authentication</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/02/facebook-php-sdk-and-codeigniter-for-basic-user-authentication/feed/</wfw:commentRss>
			<slash:comments>211</slash:comments>
		
		
			</item>
		<item>
		<title>CodeIgniter 2.0 is out with cool features!</title>
		<link>https://dannyherran.com/2011/02/codeigniter-2-0-is-out-with-cool-features/</link>
					<comments>https://dannyherran.com/2011/02/codeigniter-2-0-is-out-with-cool-features/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Mon, 14 Feb 2011 00:36:58 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=170</guid>

					<description><![CDATA[<p>I know its a bit late, CI 2.0 has been out since January 28th, 2011, but lets talk about it anyway and recapitulate some of the new features of this framework. The new stuff is great, and this time I believe it deserves a second look if you are not much into CI. Let me [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/02/codeigniter-2-0-is-out-with-cool-features/">CodeIgniter 2.0 is out with cool features!</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/02/codeigniter-2-0-is-out-with-cool-features/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Read Word documents with PHP (up to Word 2003)</title>
		<link>https://dannyherran.com/2011/02/read-word-documents-with-php-up-to-word-2003/</link>
					<comments>https://dannyherran.com/2011/02/read-word-documents-with-php-up-to-word-2003/#comments</comments>
		
		<dc:creator><![CDATA[Danny Herran]]></dc:creator>
		<pubDate>Thu, 10 Feb 2011 23:27:49 +0000</pubDate>
				<category><![CDATA[Backend]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[word]]></category>
		<guid isPermaLink="false">https://dannyherran.com/?p=157</guid>

					<description><![CDATA[<p>Reading Word documents with PHP on a Linux box can be a real pain. It requires DOM which is only available on the Windows platform. However, Unkwntech from Stack Overflow made quite a nice function to read Word documents and extract its information. It will only parse text content, but it is enough for most [&#8230;]</p>
<p>The post <a href="https://dannyherran.com/2011/02/read-word-documents-with-php-up-to-word-2003/">Read Word documents with PHP (up to Word 2003)</a> appeared first on <a href="https://dannyherran.com">Danny Herran</a>.</p>
]]></description>
		
					<wfw:commentRss>https://dannyherran.com/2011/02/read-word-documents-with-php-up-to-word-2003/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Database Caching 3/54 queries in 0.029 seconds using Disk

Served from: dannyherran.com @ 2026-05-24 22:16:53 by W3 Total Cache
-->