Skip to content

Commit 8cba19c

Browse files
committed
Added 3 functions & improved testing procedure
1 parent 8f361d3 commit 8cba19c

File tree

7 files changed

+105
-6
lines changed

7 files changed

+105
-6
lines changed

_helpers/test.htm

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
<title>PHP.JS workspace tester</title>
66
<script type="text/javascript" src="../functions/language/include.js"></script>
77
<script type="text/javascript" src="../functions/funchand/function_exists.js"></script>
8+
<script type="text/javascript" src="../functions/var/print_r.js"></script>
89
<script type="text/javascript">
9-
var catg = 'strings';
10-
var func = 'htmlspecialchars';
11-
var path = '../functions/'+catg+'/'+func+'.js';
10+
var catg = 'datetime';
11+
var func = 'time';
1212

13+
var path = '../functions/'+catg+'/'+func+'.js';
1314
var result = 'failed';
1415

1516
include(path);
@@ -27,8 +28,14 @@
2728
input = '<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i><p>test</p>';
2829
allow = '<i>,<b>';
2930
result = strip_tags(input, allow);
31+
} else if (func == 'ksort') {
32+
x = {2: 'van', 3: 'Zonneveld', 1: 'Kevin'};
33+
ksort(x, 'SORT_NUMERIC');
34+
result = print_r(x, true);
3035
} else if (func == 'mktime') {
3136
result = mktime(0,0,0,0,1,2008) + " - " + date('d M Y', mktime(0,0,0,0,1,2008));
37+
} else {
38+
eval('result = ' + func + '();');
3239
}
3340

3441
document.write('<xmp>'+result+'</xmp>');

_unported/array/krsort.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

_unported/array/ksort.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

_unported/datetime/time.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

functions/array/krsort.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
function krsort(array, sort_flags) {
2+
// http://kevin.vanzonneveld.net
3+
// + original by: GeekFG (http://geekfg.blogspot.com)
4+
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
5+
// * example 1: krsort({2: 'van', 3: 'Zonneveld', 1: 'Kevin'});
6+
// * returns 1: true
7+
8+
var tmp_arr = {}, values = array, keys = [], key_num = 0, key = '', i = 0;
9+
var sorter = false, array = false;
10+
11+
// For now only SORT_NUMERIC has a custom sorter
12+
// and SORT_REGULAR, SORT_STRING, and SORT_LOCALE_STRING
13+
// are all handled with the default sorter
14+
if (sort_flags == 'SORT_NUMERIC') {
15+
sorter = function (a, b) {
16+
return(a - b);
17+
};
18+
}
19+
20+
// Make a list of key names
21+
for (key in values) {
22+
keys[key_num++] = key;
23+
}
24+
25+
// Sort key names
26+
if (sorter !== false) {
27+
keys = keys.sort(sorter);
28+
} else {
29+
keys = keys.sort();
30+
}
31+
32+
// What makes it krsort:
33+
keys.reverse();
34+
35+
// Rebuild array with sorted keynames
36+
for (i = 0; i < key_num; i++) {
37+
key = keys[i];
38+
tmp_arr[key] = values[key];
39+
}
40+
41+
// Overwrite the original array, don't return it, to be complient with the php manual
42+
array = tmp_arr;
43+
return true;
44+
}

functions/array/ksort.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
function ksort(array, sort_flags) {
2+
// http://kevin.vanzonneveld.net
3+
// + original by: GeekFG (http://geekfg.blogspot.com)
4+
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
5+
// * example 1: ksort({2: 'van', 3: 'Zonneveld', 1: 'Kevin'});
6+
// * returns 1: true
7+
8+
var tmp_arr = {}, values = array, keys = [], key_num = 0, key = '', i = 0;
9+
var sorter = false, array = false;
10+
11+
// For now only SORT_NUMERIC has a custom sorter
12+
// and SORT_REGULAR, SORT_STRING, and SORT_LOCALE_STRING
13+
// are all handled with the default sorter
14+
if (sort_flags == 'SORT_NUMERIC') {
15+
sorter = function (a, b) {
16+
return(a - b);
17+
};
18+
}
19+
20+
// Make a list of key names
21+
for (key in values) {
22+
keys[key_num++] = key;
23+
}
24+
25+
// Sort key names
26+
if (sorter !== false) {
27+
keys = keys.sort(sorter);
28+
} else {
29+
keys = keys.sort();
30+
}
31+
32+
// Rebuild array with sorted keynames
33+
for (i = 0; i < key_num; i++) {
34+
key = keys[i];
35+
tmp_arr[key] = values[key];
36+
}
37+
38+
// Overwrite the original array, don't return it, to be complient with the php manual
39+
array = tmp_arr;
40+
return true;
41+
}

functions/datetime/time.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function time() {
2+
// http://kevin.vanzonneveld.net
3+
// + original by: GeekFG (http://geekfg.blogspot.com)
4+
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
5+
// * example 1: time();
6+
// * returns 1: 1216363871
7+
8+
var d = new Date();
9+
return Math.round(d.getTime()/1000);
10+
}

0 commit comments

Comments
 (0)