» Javascript equivalent for PHP's htmlspecialchars_decode
198 PHP equivalents
- PHP.JS Licensing
- PHP.JS SVN
- PHP.JS Namespaced
- abs
- acosh
- acos
- addslashes
- array
- array_change_key_case
- array_chunk
- array_combine
- array_count_values
- array_diff
- array_diff_assoc
- array_diff_key
- array_fill
- array_fill_keys
- array_filter
- array_flip
- array_keys
- array_key_exists
- array_map
- array_merge
- array_merge_recursive
- array_pad
- array_pop
- array_product
- array_push
- array_rand
- array_reduce
- array_reverse
- array_search
- array_shift
- array_slice
- array_sum
- array_unique
- array_unshift
- array_values
- array_walk
- array_walk_recursive
- asinh
- asin
- atanh
- atan
- base64_decode
- base64_encode
- basename
- base_convert
- bin2hex
- bindec
- call_user_func_array
- ceil
- checkdate
- chr
- chunk_split
- compact
- cosh
- cos
- count
- count_chars
- crc32
- create_function
- date
- decbin
- dechex
- decoct
- defined
- deg2rad
- dirname
- echo
- empty
- end
- explode
- exp
- filesize
- file
- file_exists
- file_get_contents
- floatval
- floor
- fmod
- function_exists
- getrandmax
- get_class
- get_html_translation_table
- get_included_files
- hexdec
- htmlentities
- htmlspecialchars
- » htmlspecialchars_decode
- html_entity_decode
- http_build_query
- hypot
- implode
- include
- include_once
- intval
- in_array
- ip2long
- isset
- is_array
- is_bool
- is_finite
- is_infinite
- is_int
- is_nan
- is_null
- is_numeric
- is_object
- is_string
- join
- krsort
- ksort
- lcg_value
- levenshtein
- log10
- log
- long2ip
- ltrim
- max
- md5
- md5_file
- min
- mktime
- mt_getrandmax
- mt_rand
- nl2br
- number_format
- octdec
- ord
- parse_str
- pi
- pow
- preg_quote
- printf
- print_r
- rad2deg
- rand
- range
- require
- require_once
- reset
- round
- rsort
- rtrim
- serialize
- setcookie
- sha1
- sha1_file
- shuffle
- sinh
- sin
- sizeof
- sleep
- sort
- soundex
- split
- sprintf
- sqrt
- strcasecmp
- strchr
- strcmp
- stripos
- stripslashes
- strip_tags
- stristr
- strlen
- strnatcmp
- strncasecmp
- strpbrk
- strpos
- strrev
- strripos
- strrpos
- strstr
- strtolower
- strtoupper
- str_ireplace
- str_pad
- str_repeat
- str_replace
- str_rot13
- str_split
- substr
- substr_count
- tanh
- tan
- time
- trim
- ucfirst
- ucwords
- unserialize
- urldecode
- urlencode
- utf8_decode
- utf8_encode
- var_export
- wordwrap
PHP to Javascript Project: php.js
This article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.
A lot of people are familiar with PHP's functions, and though Javascript functions are often quite similar, some functions may be missing or addressed differently. The Javascript implementations should be as compliant with the PHP versions as possible, a good indication is that the PHP function manual could also apply to the Javascript version.
Porting crucial PHP functions to Javascript can be fun & useful. Currently some PHP functions have been added, but readers are encouraged to contribute and improve functions by adding comments. Eventually the goal is to save all the functions in one php.js file and make it publicly available for your coding pleasure.
If you choose to contribute, let me know how you want to be credited in the function's comments. You may also want to subscribe to RSS so you receive updates whenever new functions are posted.
This is a Javascript version of the PHP function: htmlspecialchars_decode.
PHP htmlspecialchars_decode
Description
htmlspecialchars_decode - Convert special HTML entities back to characters
string htmlspecialchars_decode( string string [, int quote_style] )
The converted entities are: &, " (when ENT_NOQUOTES is not set), ' (when ENT_QUOTES is set), < and >.
Parameters
-
string
The string to decode
-
quote_style
The quote style. One of the following constants:
quote_style constants
Constant Name Description ENT_COMPAT Will convert double-quotes and leave single-quotes alone (default) ENT_QUOTES Will convert both double and single quotes ENT_NOQUOTES Will leave both double and single quotes unconverted
Return Values
Returns the decoded string.
See Also
- javascript htmlspecialchars()
- javascript html_entity_decode()
- javascript get_html_translation_table()
Javascript htmlspecialchars_decode
Source
This is the main source of the Javascript version of PHP's htmlspecialchars_decode
function htmlspecialchars_decode(string, quote_style) { // http://kevin.vanzonneveld.net // + original by: Mirek Slugen // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Mateusz "loonquawl" Zalega // + input by: ReverseSyntax // + input by: Slawomir Kaniecki // + input by: Scott Cariss // + input by: Francois // + bugfixed by: Onno Marsman // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // - depends on: get_html_translation_table // * example 1: htmlspecialchars_decode("<p>this -> "</p>", 'ENT_NOQUOTES'); // * returns 1: '<p>this -> "</p>' var histogram = {}, symbol = '', tmp_str = '', i = 0; tmp_str = string.toString(); if (false === (histogram = get_html_translation_table('HTML_SPECIALCHARS', quote_style))) { return false; } for (symbol in histogram) { entity = histogram[symbol]; tmp_str = tmp_str.split(entity).join(symbol); } return tmp_str; }
To run the Javascript htmlspecialchars_decode, you will also need the following dependencies:
Examples
Currently there is 1 example
Example 1
htmlspecialchars_decode("<p>this -> "</p>", 'ENT_NOQUOTES');And that would return
'<p>this -> "</p>'More about this Project
Download php.js
To easily include it in your code, every function currently available is stored in
Normal
- uncompressed source: php.js (222.3kB)
- minified: php.min.js (73.9kB) [recommended]
- compressed: php.packed.js (52.8kB)
Namespaced What is 'namespaced?'
- uncompressed source: php.namespaced.js (275.3kB)
- minified: php.namespaced.min.js (74.2kB)
- compressed: php.namespaced.packed.js (53.2kB)
To download use Right click, Save Link As
Generally the best way is to use a minified version and gzip it
Credits
Respect & awards go to everybody who has contributed in some way so far:
Your name here?
Contributing is as easy as adding a comment with better code, or code for a new function.
Any contribution leading to improvement will directly get your name & link here.
Coming Project features
Project features that we are currently working on:
- Site. A place for php.js of it's own. You can track our lame attempts at phpjs.org. If there are any CakePHP developers out there who would like to help out, please contact me.
- Compile. Compile your own php.js version, with only the functions you need. Should generate a hash with which you can retrieve latest versions of your php.js combination.
- docBlock. Move to docBlock comments for improved compatibility with IDEs.
- Done - Testsuite. A better test-suite that can be ran locally so developers can easily test before commiting. Also the testing itself should be more thorough.
- Done - Versioning. Individual functions are versioned, but the entire library should be versioned as well.
Like this article?
|
Then Dzone it! Or use another bookmark button below to show your support & help me spread the word. |
Hot StuffFlaming articles» Survive heavy traffic with you... | RelatedArticles like this one» PHP.JS Licensing |
tags: programming, php, javascript, phpjs
category: Programming - Javascript - PHP equivalents
read: 2,630 times










#10. Kevin on 29 September 2008
#9. Onno Marsman on 25 September 2008
There is a serious parse error in this function
should be (added a comma):#8. ReverseSyntax on 25 September 2008
There a single quote around the regex for all params values in replace() except for > the only one that works. this is in the php.min.js
#7. Kevin on 21 September 2008

returns 8. This behavior is not documented in the PHP manual though, do you know what table is used here?#6. Trevor on 17 September 2008
#5. Kevin on 27 July 2008
We have deliberately chosen to implement this a bit different from the original PHP documentation to allow for more functions to be included separately.
#4. Bob Palin on 27 July 2008
#3. Mateusz "loonquawl" Zalega (http://loonquawl.yoyo.pl) on 31 May 2008
No problem :)
There's another bug in this function. First argument of called function string.replace() is a string object '/&/g'. It won't work, unless it's a regular expression object (should be /&/g - without the apostrophes).
Here's the correct code:
This is explained here: http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String:replace http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:RegExp Btw. Most people involved in php2js project have their full names in credits. So, my name's Mateusz Zalega. Just saying :)#2. Kevin on