{"id":3916,"date":"2008-10-24T22:24:27","date_gmt":"2008-10-24T22:24:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/php-enkoder\/"},"modified":"2024-10-25T15:20:57","modified_gmt":"2024-10-25T15:20:57","slug":"php-enkoder","status":"closed","type":"plugin","link":"https:\/\/ibo.wordpress.org\/plugins\/php-enkoder\/","author":87165,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.15.2","stable_tag":"1.15.2","tested":"6.6.5","requires":"2.3","requires_php":"","requires_plugins":null,"header_name":"PHPEnkoder","header_author":"Michael Greenberg","header_description":"","assets_banners_color":"","last_updated":"2024-10-25 15:20:57","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/www.weaselhat.com\/phpenkoder\/","header_plugin_uri":"http:\/\/www.weaselhat.com\/phpenkoder\/","header_author_uri":"http:\/\/www.weaselhat.com\/","rating":5,"author_block_rating":0,"active_installs":2000,"downloads":48867,"num_ratings":8,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"michael_greenberg","date":"2009-01-12 22:37:03"},"1.10":{"tag":"1.10","author":"michael_greenberg","date":"2011-10-04 18:02:02"},"1.11":{"tag":"1.11","author":"michael_greenberg","date":"2013-12-12 15:58:34"},"1.12":{"tag":"1.12","author":"michael_greenberg","date":"2014-01-15 06:01:03"},"1.12.1":{"tag":"1.12.1","author":"michael_greenberg","date":"2014-12-17 19:41:47"},"1.13":{"tag":"1.13","author":"michael_greenberg","date":"2016-08-06 14:19:49"},"1.14":{"tag":"1.14","author":"michael_greenberg","date":"2017-03-29 22:33:51"},"1.14.1":{"tag":"1.14.1","author":"michael_greenberg","date":"2021-07-10 12:55:01"},"1.15":{"tag":"1.15","author":"michael_greenberg","date":"2020-08-12 17:16:52"},"1.15.1":{"tag":"1.15.1","author":"michael_greenberg","date":"2023-09-05 15:36:56"},"1.15.2":{"tag":"1.15.2","author":"michael_greenberg","date":"2024-10-25 15:20:57"},"1.2":{"tag":"1.2","author":"michael_greenberg","date":"2009-01-14 13:45:13"},"1.3":{"tag":"1.3","author":"michael_greenberg","date":"2009-02-03 18:50:09"},"1.4":{"tag":"1.4","author":"michael_greenberg","date":"2009-05-16 16:51:13"},"1.5":{"tag":"1.5","author":"michael_greenberg","date":"2009-06-11 20:23:50"},"1.6":{"tag":"1.6","author":"michael_greenberg","date":"2010-01-05 18:05:28"},"1.7":{"tag":"1.7","author":"michael_greenberg","date":"2010-06-09 10:12:10"},"1.8":{"tag":"1.8","author":"michael_greenberg","date":"2011-02-22 01:43:04"},"1.9":{"tag":"1.9","author":"michael_greenberg","date":"2011-03-15 18:20:14"}},"upgrade_notice":{"":"<p>See <a href=\"http:\/\/www.weaselhat.com\/phpenkoder\/\">the webpage<\/a> for\ninformation on updates.<\/p>","1.15":"<p>Thanks to <a href=\"https:\/\/github.com\/zitrusblau\">zitrusblau<\/a> for implementing\nprogrammatic control of when PHPEnkoder runs.<\/p>","1.14.1":"<p>Improved API for <code>enkode_mailto<\/code>, allowing overriding of some defaults. Thanks to Martina Beil for the patch!<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"8"},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.10","1.11","1.12","1.12.1","1.13","1.14","1.14.1","1.15","1.15.1","1.15.2","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2359,9837,18102,2392,599],"plugin_category":[41,54,59],"plugin_contributors":[80576],"plugin_business_model":[],"class_list":["post-3916","plugin","type-plugin","status-closed","hentry","plugin_tags-bot","plugin_tags-crawler","plugin_tags-harvest","plugin_tags-robot","plugin_tags-spam","plugin_category-communication","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-michael_greenberg","plugin_committers-michael_greenberg"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/php-enkoder.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PHPEnkoder is a port of the excellent <a href=\"http:\/\/hivelogic.com\/enkoder\">Hivelogic\nEnkoder<\/a> to PHP and, more specifically,\nto Wordpress. It is used to display text in a way that users can see\nand bots can't.<\/p>\n\n<p>The encoding system is directly and unabashedly stolen from the\nBSD-licensed source of Hivelogic Enkoder, which works by randomly\nencoding a piece of text and sending to the browser self-evaluating\nJavascript that will generate the original text. This works in two\nways: first, a bot must first have a fairly complete Javascript\nimplementation (in particular, it must have <code>eval<\/code>); second, the\ndecoding process can be made arbitrarily computationally\nintensive. This is similar to the idea of charging computational\npayments to send e-mail, only this is actually implemented.<\/p>\n\n<p>By default, PHPEnkoder scrambles e-mails in plaintext and in <code>mailto:<\/code>\nlinks.  It additionally provides a shortcode for manual scrambling,\nused like so: <code>[enkode text=\"shown to non-JS browsers\"]this will be\nscrambled[\/enkode]<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Either:\n\n<ul>\n<li>Go to 'Plugins &gt; Add New' and search for PHPEnkoder<\/li>\n<li>Download and extract <code>phpenkoder.1.12.1.zip<\/code> from the plugin\ndirectory and upload <code>enkoder.php<\/code> to the\n\/wordpress\/wp-content\/plugins\/ directory<\/li>\n<\/ul><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Configure the plugin through its menu in <code>Settings<\/code><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='why%20doesn%27t%20php%20enkoder%20work%20in%20the%20excerpt%3F'><h3>Why doesn't PHP Enkoder work in the excerpt?<\/h3><\/dt>\n<dd><p>WordPress creates excerpts by simply stripping tags from truncated\ncontent. This results in some Javascript-protecting comments appearing\nin the excerpt text, as there isn't a convenient way to determine if\ncontent being rendered is meant for an excerpt or the page. For now, a\ncustomizable message appears; by default, it will be rendered as \/*\nemail hidden; JavaScript is required *\/. Any ideas for workarounds\nwould be appreciated; please send them along.<\/p><\/dd>\n<dt id='i%20opened%20up%20the%20inspector%20and%20i%20saw%20my%20supposedly%20encoded%20text.%20what%20gives%3F'><h3>I opened up the inspector and I saw my supposedly encoded text. What gives?<\/h3><\/dt>\n<dd><p>The inspector shows the current live state of the DOM---how the page\nlooks right now. Once PHPEnkoder's generated JavaScript runs, then the\nDOM will include all of the secrets. If you check the source, you'll\nsee that your secrets are safe from (naively) prying eyes.<\/p><\/dd>\n<dt id='other%20questions%3F'><h3>Other questions?<\/h3><\/dt>\n<dd><p>See <a href=\"http:\/\/www.weaselhat.com\/phpenkoder\/\">the webpage<\/a> for more information.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>See <a href=\"http:\/\/www.weaselhat.com\/phpenkoder\/\">the webpage<\/a> for more\ninformation on changes.<\/p>","raw_excerpt":"Encodes mailto: links and e-mail addresses with JavaScript to stifle webcrawlers.  Automatically turns plaintext e-mails into (enkoded) links.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/3916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=3916"}],"author":[{"embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/michael_greenberg"}],"wp:attachment":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=3916"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=3916"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=3916"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=3916"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=3916"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=3916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}