php.js

php.js tester

This page is used to test the source code of the Porting PHP to Javascript Project a.k.a. php.js. A Project which aims to copy great PHP functions to Javascript.

How does this work?

The Javascript source of every function is included, and then automatically tested, based on special comments in the functions's headers, like:

//    *     example 1: ord('K');
//    *     returns 1: 75
These comments provide useful documentation, but in this case they are also executed, to see if all scripts provide the right results.

And of course, if there are any syntax errors and such, they will instantly pop-up in our browsers.

The List

All function tests are enlisted below. These tests are performed Live! in your browser ;)

RunFunctionTest No.PredefinedReturns (live)Debug
     
array#1Running: array('Kevin', 'van', 'Zonneveld'); Should return: ['Kevin', 'van', 'Zonneveld'];
 
 
array_change_key_case#1Running: array_change_key_case(42); Should return: false
 
 
array_change_key_case#2Running: array_change_key_case([ 3, 5 ]); Should return: {0: 3, 1: 5}
 
 
array_change_key_case#3Running: array_change_key_case({ FuBaR: 42 }); Should return: {"fubar": 42}
 
 
array_change_key_case#4Running: array_change_key_case({ FuBaR: 42 }, 'CASE_LOWER'); Should return: {"fubar": 42}
 
 
array_change_key_case#5Running: array_change_key_case({ FuBaR: 42 }, 'CASE_UPPER'); Should return: {"FUBAR": 42}
 
 
array_change_key_case#6Running: array_change_key_case({ FuBaR: 42 }, 2); Should return: {"FUBAR": 42}
 
 
array_chunk#1Running: array_chunk(['Kevin', 'van', 'Zonneveld'], 2); Should return: {0 : {0: 'Kevin', 1: 'van'} , 1 : {0: 'Zonneveld'}}
 
 
array_combine#1Running: array_combine([0,1,2], ['kevin','van','zonneveld']); Should return: {0: 'kevin', 1: 'van', 2: 'zonneveld'}
 
 
array_count_values#1Running: array_count_values([ 3, 5, 3, "foo", "bar", "foo" ]); Should return: {3:2, 5:1, "foo":2, "bar":1}
 
 
array_count_values#2Running: array_count_values({ p1: 3, p2: 5, p3: 3, p4: "foo", p5: "bar", p6: "foo" }); Should return: {3:2, 5:1, "foo":2, "bar":1}
 
 
array_count_values#3Running: array_count_values([ true, 4.2, 42, "fubar" ]); Should return: {42:1, "fubar":1}
 
 
array_diff#1Running: array_diff(['Kevin', 'van', 'Zonneveld'], ['van', 'Zonneveld']); Should return: ['Kevin']
 
 
array_diff_assoc#1Running: array_diff_assoc({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}, {0: 'Kevin', 4: 'van', 5: 'Zonneveld'}); Should return: {1: 'van', 2: 'Zonneveld'}
 
 
array_diff_key#1Running: array_diff_key({red: 1, green: 2, blue: 3, white: 4}); Should return: {"red":1, "green":2, "blue":3, "white":4}
 
 
array_diff_key#2Running: array_diff_key({red: 1, green: 2, blue: 3, white: 4}, {red: 5}); Should return: {"green":2, "blue":3, "white":4}
 
 
array_diff_key#3Running: array_diff_key({red: 1, green: 2, blue: 3, white: 4}, {red: 5}, {green: 6, blue: 7}); Should return: {"white":4}
 
 
array_diff_key#4Running: array_diff_key({red: 1, green: 2, blue: 3, white: 4}, {red: 5}, {red: 5}); Should return: {"green":2, "blue":3, "white":4}
 
 
array_fill#1Running: array_fill(5, 6, 'banana'); Should return: { 5: 'banana', 6: 'banana', 7: 'banana', 8: 'banana', 9: 'banana', 10: 'banana' }
 
 
array_flip#1Running: array_flip( {a: 1, b: 1, c: 2} ); Should return: {1: 'b', 2: 'c'}
 
 
array_key_exists#1Running: array_key_exists('kevin', {'kevin': 'van Zonneveld'}); Should return: true
 
 
array_keys#1Running: array_keys( {firstname: 'Kevin', surname: 'van Zonneveld'} ); Should return: {0: 'firstname', 1: 'surname'}
 
 
array_map#1Running: array_map( function(a){return (a * a * a);}, [1, 2, 3, 4, 5] ); Should return: [ 1, 8, 27, 64, 125 ]
 
 
array_pad#1Running: array_pad([ 7, 8, 9 ], 2, 'a'); Should return: [ 7, 8, 9]
 
 
array_pad#2Running: array_pad([ 7, 8, 9 ], 5, 'a'); Should return: [ 7, 8, 9, 'a', 'a']
 
 
array_pad#3Running: array_pad([ 7, 8, 9 ], 5, 2); Should return: [ 7, 8, 9, 2, 2]
 
 
array_pad#4Running: array_pad([ 7, 8, 9 ], -5, 'a'); Should return: [ 'a', 'a', 7, 8, 9 ]
 
 
array_pop#1Running: array_pop([0,1,2]); Should return: 2
 
 
array_product#1Running: array_product([ 2, 4, 6, 8 ]); Should return: 384
 
 
array_push#1Running: array_push(['kevin','van'], 'zonneveld'); Should return: 3
 
 
array_rand#1Running: array_rand( ['Kevin'], 1 ); Should return: 0
 
 
array_reduce#1Running: array_reduce([1, 2, 3, 4, 5], function(v, w){v += w; return v;}); Should return: 15
 
 
array_reverse#1Running: array_reverse( [ 'php', '4.0', ['green', 'red'] ], true ); Should return: { 2: ['green', 'red'], 1: 4, 0: 'php'}
 
 
array_search#1Running: array_search('zonneveld', {firstname: 'kevin', middle: 'van', surname: 'zonneveld'}); Should return: 'surname'
 
 
array_shift#1Running: array_shift(['Kevin', 'van', 'Zonneveld']); Should return: 'Kevin'
 
 
array_sum#1Running: array_sum([4, 9, 182.6]); Should return: 195.6
 
 
array_unique#1Running: array_unique(['Kevin','Kevin','van','Zonneveld']); Should return: ['Kevin','van','Zonneveld']
 
 
array_unshift#1Running: array_unshift(['van', 'Zonneveld'], 'Kevin'); Should return: 3
 
 
array_values#1Running: array_values( {firstname: 'Kevin', surname: 'van Zonneveld'} ); Should return: {0: 'Kevin', 1: 'van Zonneveld'}
 
 
compact#1Running: compact('var1', 'var2'); Should return: {}
 
 
count#1Running: count([[0,0],[0,-4]], 'COUNT_RECURSIVE'); Should return: 6
 
 
count#2Running: count({'one' : [1,2,3,4,5]}, 'COUNT_RECURSIVE'); Should return: 6
 
 
end#1Running: end({firstname: 'Kevin', middle: 'van', surname: 'Zonneveld'}); Should return: 'Zonneveld'
 
 
in_array#1Running: in_array('van', ['Kevin', 'van', 'Zonneveld']); Should return: true
 
 
range#1Running: range ( 0, 12 ); Should return: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
 
 
range#2Running: range( 0, 100, 10 ); Should return: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
 
 
range#3Running: range( 'a', 'i' ); Should return: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
 
 
range#4Running: range( 'c', 'a' ); Should return: ['c', 'b', 'a']
 
 
reset#1Running: reset({firstname: 'Kevin', middle: 'van', surname: 'Zonneveld'}); Should return: 'Kevin'
 
 
rsort#1Running: rsort(['Kevin', 'van', 'Zonneveld']); Should return: true
 
 
shuffle#1Running: shuffle(['Kevin', 'van', 'Zonneveld']); Should return: true
 
 
sizeof#1Running: sizeof([[0,0],[0,-4]], 'COUNT_RECURSIVE'); Should return: 6
 
 
sizeof#2Running: sizeof({'one' : [1,2,3,4,5]}, 'COUNT_RECURSIVE'); Should return: 6
 
 
sort#1Running: sort(['Kevin', 'van', 'Zonneveld']); Should return: true
 
 
get_class#1Running: get_class(new (function MyClass() {})); Should return: "MyClass"
 
 
get_class#2Running: get_class({}); Should return: "Object"
 
 
get_class#3Running: get_class([]); Should return: false
 
 
get_class#4Running: get_class(42); Should return: false
 
 
get_class#5Running: get_class(window); Should return: false
 
 
get_class#6Running: get_class(function MyFunction() {}); Should return: false
 
 
checkdate#1Running: checkdate(12, 31, 2000); Should return: true
 
 
checkdate#2Running: checkdate(2, 29, 2001); Should return: false
 
 
checkdate#3Running: checkdate(03, 31, 2008); Should return: true
 
 
date#1Running: date('H:m:s \\m \\i\\s \\m\\o\\n\\t\\h', 1062402400); Should return: '09:09:40 m is month'
 
 
date#2Running: date('F j, Y, g:i a', 1062462400); Should return: 'September 2, 2003, 2:26 am'
 
 
mktime#1Running: mktime( 14, 10, 2, 2, 1, 2008 ); Should return: 1201871402
 
 
basename#1Running: basename('/www/site/home.htm', '.htm'); Should return: 'home'
 
 
dirname#1Running: dirname('/etc/passwd'); Should return: '/etc'
 
 
dirname#2Running: dirname('c:/Temp/x'); Should return: 'c:/Temp'
 
 
dirname#3Running: dirname('/dir/test/'); Should return: '/dir'
 
 
file#1Running: file('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); Should return: {0: '123'}
 
 
file_get_contents#1Running: file_get_contents('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); Should return: '123'
 
 
call_user_func_array#1Running: call_user_func_array('isNaN', ['a']); Should return: true
 
 
call_user_func_array#2Running: call_user_func_array('isNaN', [1]); Should return: false
 
 
function_exists#1Running: function_exists('isFinite'); Should return: true
 
 
get_included_files#1Running: get_included_files(); Should return: ['http://kevin.vanzonneveld.net/pj_tester.php']
 
 
include#1Running: include('/pj_test_supportfile_2.js'); Should return: 1
 
 
include_once#1Running: include_once('/pj_test_supportfile_2.js'); Should return: true
 
 
require#1Running: require('/pj_test_supportfile_2.js'); Should return: 2
 
 
require_once#1Running: require_once('/pj_test_supportfile_2.js'); Should return: true
 
 
abs#1Running: abs(4.2); Should return: 4.2
 
 
abs#2Running: abs(-4.2); Should return: 4.2
 
 
abs#3Running: abs(-5); Should return: 5
 
 
abs#4Running: abs('_argos'); Should return: 0
 
 
rand#1Running: rand(1, 1); Should return: 1
 
 
round#1Running: round(1241757, -3); Should return: 1242000
 
 
round#2Running: round(3.6); Should return: 4
 
 
defined#1Running: defined('IMAGINARY_CONSTANT1'); Should return: false
 
 
ip2long#1Running: ip2long( '192.0.34.166' ); Should return: 3221234342
 
 
long2ip#1Running: long2ip( 3221234342 ); Should return: '192.0.34.166'
 
 
setcookie#1Running: setcookie('author_name', 'Kevin van Zonneveld'); Should return: true
 
 
preg_quote#1Running: preg_quote("$40"); Should return: "\\\$40"
 
 
preg_quote#2Running: preg_quote("*RRRING* Hello?"); Should return: "\\*RRRING\\* Hello\\?"
 
 
preg_quote#3Running: preg_quote("\\.+*?[^]$(){}=!<>|:"); Should return: "\\\\\\.\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:"
 
 
addslashes#1Running: addslashes("kevin's birthday"); Should return: "kevin\'s birthday"
 
 
bin2hex#1Running: bin2hex('Kev'); Should return: '4b6576'
 
 
chr#1Running: chr(75); Should return: 'K'
 
 
count_chars#1Running: count_chars("Hello World!", 3); Should return: "Helo Wrd!"
 
 
crc32#1Running: crc32('Kevin van Zonneveld'); Should return: 1249991249
 
 
echo#1Running: echo('Hello', 'World'); Should return: null
 
 
explode#1Running: explode(' ', 'Kevin van Zonneveld'); Should return: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
 
 
explode#2Running: explode('=', 'a=bc=d', 2); Should return: ['a', 'bc=d']
 
 
html_entity_decode#1Running: html_entity_decode('Kevin &amp; van Zonneveld'); Should return: 'Kevin & van Zonneveld'
 
 
htmlentities#1Running: htmlentities('Kevin & van Zonneveld'); Should return: 'Kevin &amp; van Zonneveld'
 
 
htmlspecialchars#1Running: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES'); Should return: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt'
 
 
htmlspecialchars_decode#1Running: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES'); Should return: '<p>this -> &quot;</p>'
 
 
implode#1Running: implode(' ', ['Kevin', 'van', 'Zonneveld']); Should return: 'Kevin van Zonneveld'
 
 
join#1Running: join(' ', ['Kevin', 'van', 'Zonneveld']); Should return: 'Kevin van Zonneveld'
 
 
levenshtein#1Running: levenshtein('Kevin van Zonneveld', 'Kevin van Sommeveld'); Should return: 3
 
 
ltrim#1Running: ltrim(' Kevin van Zonneveld '); Should return: 'Kevin van Zonneveld '
 
 
md5#1Running: md5('Kevin van Zonneveld'); Should return: '6e658d4bfcb59cc13f96c14450ac40b9'
 
 
md5_file#1Running: md5_file('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); Should return: '202cb962ac59075b964b07152d234b70'
 
 
nl2br#1Running: nl2br('Kevin\nvan\nZonneveld'); Should return: 'Kevin<br/>\nvan<br/>\nZonneveld'
 
 
number_format#1Running: number_format(1234.5678, 2, '.', ''); Should return: 1234.57
 
 
ord#1Running: ord('K'); Should return: 75
 
 
parse_str#1Running: parse_str('first=foo&second=bar'); Should return: { first: 'foo', second: 'bar' }
 
 
parse_str#2Running: parse_str('str_a=Jack+and+Jill+didn%27t+see+the+well.'); Should return: { str_a: "Jack and Jill didn't see the well." }
 
 
rtrim#1Running: rtrim(' Kevin van Zonneveld '); Should return: ' Kevin van Zonneveld'
 
 
sha1#1Running: sha1('Kevin van Zonneveld'); Should return: '54916d2e62f65b3afa6e192e6a601cdbe5cb5897'
 
 
sha1_file#1Running: sha1_file('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm'); Should return: '40bd001563085fc35165329ea1ff5c5ecbdbbeef'
 
 
soundex#1Running: soundex('Kevin'); Should return: 'K150'
 
 
split#1Running: split(' ', 'Kevin van Zonneveld'); Should return: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
 
 
sprintf#1Running: sprintf("%01.2f", 123.1); Should return: 123.10
 
 
str_ireplace#1Running: str_ireplace('l', 'l', 'HeLLo'); Should return: 'Hello'
 
 
str_pad#1Running: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT'); Should return: '-=-=-=-=-=-Kevin van Zonneveld'
 
 
str_pad#2Running: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH'); Should return: '------Kevin van Zonneveld-----'
 
 
str_repeat#1Running: str_repeat('-=', 10); Should return: '-=-=-=-=-=-=-=-=-=-='
 
 
str_replace#1Running: str_replace(' ', '.', 'Kevin van Zonneveld'); Should return: 'Kevin.van.Zonneveld'
 
 
str_replace#2Running: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars'); Should return: 'hemmo, mars'
 
 
str_rot13#1Running: str_rot13('Kevin van Zonneveld'); Should return: 'Xriva ina Mbaariryq'
 
 
str_rot13#2Running: str_rot13('Xriva ina Mbaariryq'); Should return: 'Kevin van Zonneveld'
 
 
str_split#1Running: str_split('Hello Friend', 3); Should return: ['Hel', 'lo ', 'Fri', 'end']
 
 
strcasecmp#1Running: strcasecmp('Hello', 'hello'); Should return: 0
 
 
strchr#1Running: strchr('Kevin van Zonneveld', 'van'); Should return: 'van Zonneveld'
 
 
strchr#2Running: strchr('Kevin van Zonneveld', 'van', true); Should return: 'Kevin '
 
 
strcmp#1Running: strcmp( 'waldo', 'owald' ); Should return: 1
 
 
strcmp#2Running: strcmp( 'owald', 'waldo' ); Should return: -1
 
 
strip_tags#1Running: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i>,<b>'); Should return: 'Kevin <b>van</b> <i>Zonneveld</i>'
 
 
stripos#1Running: stripos('ABC', 'a'); Should return: 0
 
 
stripslashes#1Running: stripslashes('Kevin\'s code'); Should return: "Kevin's code"
 
 
stristr#1Running: stristr('Kevin van Zonneveld', 'Van'); Should return: 'van Zonneveld'
 
 
stristr#2Running: stristr('Kevin van Zonneveld', 'VAN', true); Should return: 'Kevin '
 
 
strlen#1Running: strlen('Kevin van Zonneveld'); Should return: 19
 
 
strnatcmp#1Running: strnatcmp('Price 12.9', 'Price 12.15'); Should return: -1
 
 
strnatcmp#2Running: strnatcmp('Version 12.9', 'Version 12.15', true); Should return: -6
 
 
strnatcmp#3Running: strnatcmp('Version 12.9', 'Version 12.15', false); Should return: -1
 
 
strpbrk#1Running: strpbrk('This is a Simple text.', 'is'); Should return: 'is is a Simple text.'
 
 
strpos#1Running: strpos('Kevin van Zonneveld', 'e', 5); Should return: 14
 
 
strrev#1Running: strrev('Kevin van Zonneveld'); Should return: 'dlevennoZ nav niveK'
 
 
strripos#1Running: strripos('Kevin van Zonneveld', 'E'); Should return: 16
 
 
strrpos#1Running: strrpos('Kevin van Zonneveld', 'e'); Should return: 16
 
 
strstr#1Running: strstr('Kevin van Zonneveld', 'van'); Should return: 'van Zonneveld'
 
 
strstr#2Running: strstr('Kevin van Zonneveld', 'van', true); Should return: 'Kevin '
 
 
strtolower#1Running: strtolower('Kevin van Zonneveld'); Should return: 'kevin van zonneveld'
 
 
strtoupper#1Running: strtoupper('Kevin van Zonneveld'); Should return: 'KEVIN VAN ZONNEVELD'
 
 
substr#1Running: substr('abcdef', 0, -1); Should return: 'abcde'
 
 
substr_count#1Running: substr_count('Kevin van Zonneveld', 'e'); Should return: 3
 
 
substr_count#2Running: substr_count('Kevin van Zonneveld', 'K', 1); Should return: 0
 
 
substr_count#3Running: substr_count('Kevin van Zonneveld', 'Z', 0, 10); Should return: false
 
 
trim#1Running: trim(' Kevin van Zonneveld '); Should return: 'Kevin van Zonneveld'
 
 
trim#2Running: trim('Hello World', 'Hdle'); Should return: 'o Wor'
 
 
ucfirst#1Running: ucfirst('kevin van zonneveld'); Should return: 'Kevin van zonneveld'
 
 
ucwords#1Running: ucwords('kevin van zonneveld'); Should return: 'Kevin Van Zonneveld'
 
 
wordwrap#1Running: wordwrap('Kevin van Zonneveld', 6, '|', true); Should return: 'Kevin |van |Zonnev|eld'
 
 
base64_decode#1Running: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA=='); Should return: 'Kevin van Zonneveld'
 
 
base64_encode#1Running: base64_encode('Kevin van Zonneveld'); Should return: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
 
 
http_build_query#1Running: http_build_query({ foo: 'bar', baz: 'boom', cow: 'milk', php: 'hypertext processor' }, '', '&amp;'); Should return: 'foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor'
 
 
http_build_query#2Running: http_build_query({0: 'foo', 1: 'bar', 2: 'baz', 3: 'boom', cow: 'milk', php :'hypertext processor'}, 'myvar_'); Should return: 'myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor'
 
 
urldecode#1Running: urldecode('Kevin+van+Zonneveld%21'); Should return: 'Kevin van Zonneveld!'
 
 
urlencode#1Running: urlencode('Kevin van Zonneveld!'); Should return: 'Kevin+van+Zonneveld%21'
 
 
empty#1Running: empty(null); Should return: true
 
 
floatval#1Running: floatval('150.03_page-section'); Should return: 150.03
 
 
floatval#2Running: floatval('-50 + 8'); Should return: -50
 
 
intval#1Running: intval('Kevin van Zonneveld'); Should return: 0
 
 
intval#2Running: intval(4.2); Should return: 4
 
 
intval#3Running: intval(42, 8); Should return: 42
 
 
intval#4Running: intval('09'); Should return: 9
 
 
is_array#1Running: is_array(['Kevin', 'van', 'Zonneveld']); Should return: true
 
 
is_array#2Running: is_array('Kevin van Zonneveld'); Should return: false
 
 
is_int#1Running: is_int(186.31); Should return: false
 
 
is_int#2Running: is_int(12); Should return: true
 
 
is_null#1Running: is_null('23'); Should return: false
 
 
is_null#2Running: is_null(null); Should return: true
 
 
is_numeric#1Running: is_numeric(186.31); Should return: true
 
 
is_numeric#2Running: is_numeric('Kevin van Zonneveld'); Should return: false
 
 
is_numeric#3Running: is_numeric('+186.31e2'); Should return: true
 
 
is_object#1Running: is_object('23'); Should return: false
 
 
is_object#2Running: is_object({foo: 'bar'}); Should return: true
 
 
is_object#3Running: is_object(null); Should return: false
 
 
is_string#1Running: is_string('23'); Should return: true
 
 
is_string#2Running: is_string(23.5); Should return: false
 
 
isset#1Running: isset( undefined, true); Should return: false
 
 
isset#2Running: isset( 'Kevin van Zonneveld' ); Should return: true
 
 
serialize#1Running: serialize(['Kevin', 'van', 'Zonneveld']); Should return: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'
 
 
unserialize#1Running: unserialize('a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}'); Should return: ['Kevin', 'van', 'Zonneveld']
 
 
var_export#1Running: var_export(null); Should return: null
 
 
utf8_decode#1Running: utf8_decode('Kevin van Zonneveld'); Should return: 'Kevin van Zonneveld'
 
 
utf8_encode#1Running: utf8_encode('Kevin van Zonneveld'); Should return: 'Kevin van Zonneveld'
 
 

Sorry for using 'Kevin van Zonnveld' so much, but after hours of coding at night, I'm not that creative anymore ;)

No tests available for

None!

Currently every function has at least 1 'example' & 'returns' comment, so every function can be tested! :D