{"id":22169,"date":"2014-07-11T15:05:56","date_gmt":"2014-07-11T13:05:56","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=22169"},"modified":"2014-07-11T15:07:31","modified_gmt":"2014-07-11T13:07:31","slug":"php-fine-diff-php-library-to-diff-strings","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/","title":{"rendered":"PHP Fine Diff &#8211; PHP library to diff strings"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"http:\/\/www.raymondhill.net\/finediff\/viewdiff-ex.php\">PHP Fine Diff<\/a> &#8211; PHP library to diff strings. \u00a0I&#8217;ve tried a few different implementations and all of them either required an external diff program couldn&#8217;t render HTML, or failed to due to enormous resource usage. \u00a0PHP Fine Diff does all I need and does it fast. \u00a0 It&#8217;s also rediculously easy to use:<\/p>\n<pre class=\"brush: php; light: true; title: ; notranslate\" title=\"\">\r\n$fineDiff = new FineDiff($strOrig, $strNew);\r\n$htmlDiff = $findDiff-&gt;renderDiffToHTML();\r\n<\/pre>\n<p>Found via <a href=\"http:\/\/stackoverflow.com\/questions\/321294\/highlight-the-difference-between-two-strings-in-php\">this StackOverflow discussion<\/a>.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>PHP Fine Diff &#8211; PHP library to diff strings. \u00a0I&#8217;ve tried a few different implementations and all of them either required an external diff program couldn&#8217;t render HTML, or failed to due to enormous resource usage. \u00a0PHP Fine Diff does all I need and does it fast. \u00a0 It&#8217;s also rediculously easy to use: $fineDiff &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PHP Fine Diff &#8211; PHP library to diff strings<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[38],"keyring_services":[],"class_list":["post-22169","post","type-post","status-publish","format-link","hentry","category-general","category-programming","category-technology","category-web-work","tag-php","post_format-post-format-link"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"PHP Fine Diff - PHP library to diff strings. I&#039;ve tried a few different implementations and all of them either required an external diff program couldn&#039;t render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It&#039;s also rediculously easy to use: [code\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"PHP Fine Diff - PHP library to diff strings. I&#039;ve tried a few different implementations and all of them either required an external diff program couldn&#039;t render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It&#039;s also rediculously easy to use: [code\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-07-11T13:05:56+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-07-11T13:07:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"PHP Fine Diff - PHP library to diff strings. I&#039;ve tried a few different implementations and all of them either required an external diff program couldn&#039;t render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It&#039;s also rediculously easy to use: [code\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#blogposting\",\"name\":\"PHP Fine Diff \\u2013 PHP library to diff strings - Leonid Mamchenkov\",\"headline\":\"PHP Fine Diff &#8211; PHP library to diff strings\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2014-07-11T15:05:56+02:00\",\"dateModified\":\"2014-07-11T15:07:31+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, PHP, Link\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#listItem\",\"name\":\"PHP Fine Diff &#8211; PHP library to diff strings\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#listItem\",\"position\":4,\"name\":\"PHP Fine Diff &#8211; PHP library to diff strings\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/\",\"name\":\"PHP Fine Diff \\u2013 PHP library to diff strings - Leonid Mamchenkov\",\"description\":\"PHP Fine Diff - PHP library to diff strings. I've tried a few different implementations and all of them either required an external diff program couldn't render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It's also rediculously easy to use: [code\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/07\\\/11\\\/php-fine-diff-php-library-to-diff-strings\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2014-07-11T15:05:56+02:00\",\"dateModified\":\"2014-07-11T15:07:31+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov","description":"PHP Fine Diff - PHP library to diff strings. I've tried a few different implementations and all of them either required an external diff program couldn't render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It's also rediculously easy to use: [code","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#blogposting","name":"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov","headline":"PHP Fine Diff &#8211; PHP library to diff strings","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2014-07-11T15:05:56+02:00","dateModified":"2014-07-11T15:07:31+02:00","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#webpage"},"articleSection":"All, Programming, Technology, Web work, PHP, Link"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#listItem","name":"PHP Fine Diff &#8211; PHP library to diff strings"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#listItem","position":4,"name":"PHP Fine Diff &#8211; PHP library to diff strings","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/","name":"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov","description":"PHP Fine Diff - PHP library to diff strings. I've tried a few different implementations and all of them either required an external diff program couldn't render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It's also rediculously easy to use: [code","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2014-07-11T15:05:56+02:00","dateModified":"2014-07-11T15:07:31+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov","og:description":"PHP Fine Diff - PHP library to diff strings. I've tried a few different implementations and all of them either required an external diff program couldn't render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It's also rediculously easy to use: [code","og:url":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2014-07-11T13:05:56+00:00","article:modified_time":"2014-07-11T13:07:31+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"PHP Fine Diff \u2013 PHP library to diff strings - Leonid Mamchenkov","twitter:description":"PHP Fine Diff - PHP library to diff strings. I've tried a few different implementations and all of them either required an external diff program couldn't render HTML, or failed to due to enormous resource usage. PHP Fine Diff does all I need and does it fast. It's also rediculously easy to use: [code","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"22169","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 02:20:45","updated":"2026-01-15 10:36:44","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPHP Fine Diff \u2013 PHP library to diff strings\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"PHP Fine Diff &#8211; PHP library to diff strings","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/11\/php-fine-diff-php-library-to-diff-strings\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28827,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/09\/30\/highlights-from-git-2-19-and-php-syntax\/","url_meta":{"origin":22169,"position":0},"title":"Highlights from Git 2.19 and PHP syntax","author":"Leonid Mamchenkov","date":"September 30, 2018","format":false,"excerpt":"GitHub blog covers the highlights from Git 2.19, which was recently released. One particular change that I want to highlight (which GitHub skipped in their highlights, but which exists in the Git release notes for this version) is the syntax pattern update for the PHP files. Let's have a look\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/09\/git-range-diff-500x243.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27280,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/01\/31\/composer-patches-simple-patches-plugin-for-composer\/","url_meta":{"origin":22169,"position":1},"title":"composer-patches &#8211; Simple patches plugin for Composer","author":"Leonid Mamchenkov","date":"January 31, 2017","format":false,"excerpt":"composer-patches is a plugin for Composer which helps with applying patches to the installed dependencies. \u00a0It supports patches from URLs, local files, and from other dependencies. I think this is absolutely brilliant! It's quite often that one finds bugs and issues in external dependencies. \u00a0Once the bug (or even the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/01\/commit-500x263.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":24043,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/05\/04\/httpdiff-perform-the-same-request-against-two-http-servers-and-diff-the-results\/","url_meta":{"origin":22169,"position":2},"title":"httpdiff &#8211; perform the same request against two HTTP servers and diff the results","author":"Leonid Mamchenkov","date":"May 4, 2015","format":"link","excerpt":"httpdiff - perform the same request against two HTTP servers and diff the results","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"httpdiff","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/05\/httpdiff-500x190.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26190,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/06\/15\/diff-so-fancy-the-best-lookin-diffs\/","url_meta":{"origin":22169,"position":3},"title":"diff-so-fancy &#8211; the best-lookin&#8217; diffs","author":"Leonid Mamchenkov","date":"June 15, 2016","format":false,"excerpt":"Here is a cool tool to spice up your regular boring looking diffs - diff-so-fancy. \u00a0Don't get spooked by the npm installation instructions - the meat of it is all in perl\/shell and you can install it as any other ~\/bin\/ script. \u00a0Have a look at what you are missing:","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"diff-so-fancy","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/06\/diff-so-fancy-500x448.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":14663,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/03\/23\/old-macdonald-had-a-file\/","url_meta":{"origin":22169,"position":4},"title":"Old MacDonald had a file","author":"Leonid Mamchenkov","date":"March 23, 2011","format":false,"excerpt":"Here is a bit of office humor from today: Old MacDonald had a file, ee-i-ee-i-o, And on that file he had a change, ee-i-ee-i-o, With a diff-diff here, a patch-patch there, Diff-patch, diff-patch everywhere, Old MacDonald had a file, ee-i-ee-i-o. P.S.: Those of you who don't get it, should take\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22474,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/09\/03\/page-monitor-capture-webpage-and-diff-the-dom-change-with-phantomjs\/","url_meta":{"origin":22169,"position":5},"title":"page-monitor &#8211; capture webpage and diff the dom change with phantomjs","author":"Leonid Mamchenkov","date":"September 3, 2014","format":"link","excerpt":"page-monitor - capture webpage and diff the dom change with phantomjs","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"page-monitor","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/09\/page-monitor-500x495.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=22169"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22169\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=22169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=22169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=22169"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=22169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}