212
I Use This!
Very Low Activity

News

Analyzed about 9 hours ago. based on code collected about 9 hours ago.
Posted about 13 years ago by hadi
hi I work on string statistic project now after knowing phpjs finding it so useful but one note: php 5.3 support international date, java scripts hasn't something like this that's first problem for developer of jQuery & other java scripts ... [More] frameworks since you have big experience in adopting codes between two language I think making prototype of Date function (with shamsi & jalali & hijri date) is great help to all developer that refrencing them in his projects thanks so much [Less]
Posted about 13 years ago by pat nelson
function php_uname() { // Your code here }
Posted about 13 years ago by Hans Henrik
here is an alternate, much simpler implementation.. (since the javascript's var_export equalent seems to be JSON.stringify) function var_export (mixed_expression, bool_return) { if (bool_return != true) { ... [More] this.echo(JSON.stringify(mixed_expression)); return null; } else { return JSON.stringify(mixed_expression); } } also, in the current code, bool_return !== true should be bool_return != true (php's var_export don't care if you call var_export(blabla,1) or call var_export(blabla,true); ) [Less]
Posted about 13 years ago by jeicquest
line:24+ reset = 0, line:80-90 for (j = 0; j < keys.length; j++) { key = keys[j]; if ((key !== '' && key !== ' ') || j === 0) { key = "'" + key + "'"; ... [More] } else { key = "'" + reset + "'"; reset++; //key = eval(evalStr + '.push([]);') - 1; } evalStr += '[' + key + ']'; if (j !== keys.length - 1 && eval('typeof ' + evalStr) === 'undefined') { eval(evalStr + ' = {};'); reset = 0; } } [Less]
Posted about 13 years ago by rahul
Thanks a lot, finally i got the answer in your post, thanks a lot
Posted about 13 years ago by hieshibre
Posted about 13 years ago by Kevin - Revision for percent in insimilar_text() function
function similar_text(string1,string2,percent){ var l1 = string1.length; var l2 = string2.length; var arr1 = string1.split(''); var arr2 = string2.split(''); var similar_txt = 0; var temp=""; var arr3 = new Array(); var arr_result = ... [More] new Array(); for(var i=0; i<=l1-1; i++){ for(var j=0; j<=l2-1; j++){ temp = arr1[i]+arr2[j]; if(arr1[i]==arr2[j]){ arr3.push(temp); } } } label:for(var k=0; k<arr3.length;k++ ) { for(var l=0; l<arr_result.length;l++ ) { if(arr_result[l]==arr3[k]){ continue label; } } arr_result[arr_result.length] = arr3[k]; } similar_txt=arr_result.length; if(percent==undefined){ return similar_txt; } else { return (similar_txt*200)/(l1+l2); } } [Less]
Posted about 13 years ago by CasiariwarSic
Posted about 13 years ago by Jayram Prajapati
function parse_ini_file(url, flags, context, offset, maxLen) { var obj={}; var inidat=''; var tmp, headers = [], newTmp = [], k = 0, i = 0, href = '', pathPos = -1, flagNames = 0, ... [More] content = null, http_stream = false; var func = function (value) { return value.substring(1) !== ''; }; // BEGIN REDUNDANT this.php_js = this.php_js || {}; this.php_js.ini = this.php_js.ini || {}; // END REDUNDANT var ini = this.php_js.ini; context = context || this.php_js.default_streams_context || null; if (!flags) { flags = 0; } var OPTS = { FILE_USE_INCLUDE_PATH: 1, FILE_TEXT: 32, FILE_BINARY: 64 }; if (typeof flags === 'number') { // Allow for a single string or an array of string flags flagNames = flags; } else { flags = [].concat(flags); for (i = 0; i < flags.length; i++) { if (OPTS[flags[i]]) { flagNames = flagNames | OPTS[flags[i]]; } } } if (flagNames & OPTS.FILE_BINARY && (flagNames & OPTS.FILE_TEXT)) { // These flags shouldn't be together throw 'You cannot pass both FILE_BINARY and FILE_TEXT to file_get_contents()'; } if ((flagNames & OPTS.FILE_USE_INCLUDE_PATH) && ini.include_path && ini.include_path.local_value) { var slash = ini.include_path.local_value.indexOf('/') !== -1 ? '/' : '\\'; url = ini.include_path.local_value + slash + url; } else if (!/^(https?|file):/.test(url)) { // Allow references within or below the same directory (should fix to allow other relative references or root reference; could make dependent on parse_url()) href = this.window.location.href; pathPos = url.indexOf('/') === 0 ? href.indexOf('/', 8) - 1 : href.lastIndexOf('/'); url = href.slice(0, pathPos + 1) + url; } if (context) { var http_options = context.stream_options && context.stream_options.http; http_stream = !! http_options; } if (!context || http_stream) { var req = this.window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); if (!req) { throw new Error('XMLHttpRequest not supported'); } var method = http_stream ? http_options.method : 'GET'; var async = !! (context && context.stream_params && context.stream_params['phpjs.async']); if (ini['phpjs.ajaxBypassCache'] && ini['phpjs.ajaxBypassCache'].local_value) { url += (url.match(/\?/) == null ? "?" : "&") + (new Date()).getTime(); // Give optional means of forcing bypass of cache } req.open(method, url, async); if (async) { var notification = context.stream_params.notification; if (typeof notification === 'function') { // Fix: make work with req.addEventListener if available: https://developer.mozilla.org/En/Using_XMLHttpRequest if (0 && req.addEventListener) { // Unimplemented so don't allow to get here /* req.addEventListener('progress', updateProgress, false); req.addEventListener('load', transferComplete, false); req.addEventListener('error', transferFailed, false); req.addEventListener('abort', transferCanceled, false); */ } else { req.onreadystatechange = function (aEvt) { // aEvt has stopPropagation(), preventDefault(); see https://developer.mozilla.org/en/NsIDOMEvent // Other XMLHttpRequest properties: multipart, responseXML, status, statusText, upload, withCredentials /* PHP Constants: STREAM_NOTIFY_RESOLVE 1 A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened. STREAM_NOTIFY_CONNECT 2 A connection with an external resource has been established. STREAM_NOTIFY_AUTH_REQUIRED 3 Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR. STREAM_NOTIFY_MIME_TYPE_IS 4 The mime-type of resource has been identified, refer to message for a description of the discovered type. STREAM_NOTIFY_FILE_SIZE_IS 5 The size of the resource has been discovered. STREAM_NOTIFY_REDIRECTED 6 The external resource has redirected the stream to an alternate location. Refer to message . STREAM_NOTIFY_PROGRESS 7 Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well. STREAM_NOTIFY_COMPLETED 8 There is no more data available on the stream. STREAM_NOTIFY_FAILURE 9 A generic error occurred on the stream, consult message and message_code for details. STREAM_NOTIFY_AUTH_RESULT 10 Authorization has been completed (with or without success). STREAM_NOTIFY_SEVERITY_INFO 0 Normal, non-error related, notification. STREAM_NOTIFY_SEVERITY_WARN 1 Non critical error condition. Processing may continue. STREAM_NOTIFY_SEVERITY_ERR 2 A critical error occurred. Processing cannot continue. */ var objContext = { responseText: req.responseText, responseXML: req.responseXML, status: req.status, statusText: req.statusText, readyState: req.readyState, evt: aEvt }; // properties are not available in PHP, but offered on notification via 'this' for convenience // notification args: notification_code, severity, message, message_code, bytes_transferred, bytes_max (all int's except string 'message') // Need to add message, etc. var bytes_transferred; switch (req.readyState) { case 0: // UNINITIALIZED open() has not been called yet. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 1: // LOADING send() has not been called yet. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 2: // LOADED send() has been called, and headers and status are available. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 3: // INTERACTIVE Downloading; responseText holds partial data. bytes_transferred = req.responseText.length * 2; // One character is two bytes notification.call(objContext, 7, 0, '', 0, bytes_transferred, 0); break; case 4: // COMPLETED The operation is complete. if (req.status >= 200 && req.status < 400) { bytes_transferred = req.responseText.length * 2; // One character is two bytes notification.call(objContext, 8, 0, '', req.status, bytes_transferred, 0); } else if (req.status === 403) { // Fix: These two are finished except for message notification.call(objContext, 10, 2, '', req.status, 0, 0); } else { // Errors notification.call(objContext, 9, 2, '', req.status, 0, 0); } break; default: throw 'Unrecognized ready state for file_get_contents()'; } } } } } if (http_stream) { var sendHeaders = http_options.header && http_options.header.split(/\r?\n/); var userAgentSent = false; for (i = 0; i < sendHeaders.length; i++) { var sendHeader = sendHeaders[i]; var breakPos = sendHeader.search(/:\s*/); var sendHeaderName = sendHeader.substring(0, breakPos); req.setRequestHeader(sendHeaderName, sendHeader.substring(breakPos + 1)); if (sendHeaderName === 'User-Agent') { userAgentSent = true; } } if (!userAgentSent) { var user_agent = http_options.user_agent || (ini.user_agent && ini.user_agent.local_value); if (user_agent) { req.setRequestHeader('User-Agent', user_agent); } } content = http_options.content || null; /* // Presently unimplemented HTTP context options var request_fulluri = http_options.request_fulluri || false; // When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. var max_redirects = http_options.max_redirects || 20; // The max number of redirects to follow. Value 1 or less means that no redirects are followed. var protocol_version = http_options.protocol_version || 1.0; // HTTP protocol version var timeout = http_options.timeout || (ini.default_socket_timeout && ini.default_socket_timeout.local_value); // Read timeout in seconds, specified by a float var ignore_errors = http_options.ignore_errors || false; // Fetch the content even on failure status codes. */ } if (flagNames & OPTS.FILE_TEXT) { // Overrides how encoding is treated (regardless of what is returned from the server) var content_type = 'text/html'; if (http_options && http_options['phpjs.override']) { // Fix: Could allow for non-HTTP as well content_type = http_options['phpjs.override']; // We use this, e.g., in gettext-related functions if character set // overridden earlier by bind_textdomain_codeset() } else { var encoding = (ini['unicode.stream_encoding'] && ini['unicode.stream_encoding'].local_value) || 'UTF-8'; if (http_options && http_options.header && (/^content-type:/im).test(http_options.header)) { // We'll assume a content-type expects its own specified encoding if present content_type = http_options.header.match(/^content-type:\s*(.*)$/im)[1]; // We let any header encoding stand } if (!(/;\s*charset=/).test(content_type)) { // If no encoding content_type += '; charset=' + encoding; } } req.overrideMimeType(content_type); } // Default is FILE_BINARY, but for binary, we apparently deviate from PHP in requiring the flag, since many if not // most people will also want a way to have it be auto-converted into native JavaScript text instead else if (flagNames & OPTS.FILE_BINARY) { // Trick at https://developer.mozilla.org/En/Using_XMLHttpRequest to get binary req.overrideMimeType('text/plain; charset=x-user-defined'); // Getting an individual byte then requires: // responseText.charCodeAt(x) & 0xFF; // throw away high-order byte (f7) where x is 0 to responseText.length-1 (see notes in our substr()) } if (http_options && http_options['phpjs.sendAsBinary']) { // For content sent in a POST or PUT request (use with file_put_contents()?) req.sendAsBinary(content); // In Firefox, only available FF3+ } else { req.send(content); } tmp = req.getAllResponseHeaders(); if (tmp) { tmp = tmp.split('\n'); for (k = 0; k < tmp.length; k++) { if (func(tmp[k])) { newTmp.push(tmp[k]); } } tmp = newTmp; for (i = 0; i < tmp.length; i++) { headers[i] = tmp[i]; } this.$http_response_header = headers; // see http://php.net/manual/en/reserved.variables.httpresponseheader.php } if (offset || maxLen) { if (maxLen) { inidat=req.responseText.substr(offset || 0, maxLen); } inidat=req.responseText.substr(offset); } inidat=req.responseText; iniArr=inidat.split("\n"); var ill=";"; for(j=0;j<iniArr.length;j++) { if (ill.indexOf(iniArr[j].charAt(0)) == -1) { newStr=iniArr[j].split(";")[0].replace(/ /g,'').split("="); if(newStr[1]!=undefined && newStr[0]!=undefined) { objId=newStr[0]; objVal=newStr[1]; if(objVal[0]=='"') { objVal=objVal.split('"')[1].split('"')[0]; } if(objVal!=undefined) { obj[objId]=[objVal]; } } } } return obj; } return false; } [Less]
Posted about 13 years ago by Jayram Prajapati
function parse_ini_file(url, flags, context, offset, maxLen) { var obj={}; var inidat=''; var tmp, headers = [], newTmp = [], k = 0, i = 0, href = '', pathPos = -1, flagNames = 0, ... [More] content = null, http_stream = false; var func = function (value) { return value.substring(1) !== ''; }; // BEGIN REDUNDANT this.php_js = this.php_js || {}; this.php_js.ini = this.php_js.ini || {}; // END REDUNDANT var ini = this.php_js.ini; context = context || this.php_js.default_streams_context || null; if (!flags) { flags = 0; } var OPTS = { FILE_USE_INCLUDE_PATH: 1, FILE_TEXT: 32, FILE_BINARY: 64 }; if (typeof flags === 'number') { // Allow for a single string or an array of string flags flagNames = flags; } else { flags = [].concat(flags); for (i = 0; i < flags.length; i++) { if (OPTS[flags[i]]) { flagNames = flagNames | OPTS[flags[i]]; } } } if (flagNames & OPTS.FILE_BINARY && (flagNames & OPTS.FILE_TEXT)) { // These flags shouldn't be together throw 'You cannot pass both FILE_BINARY and FILE_TEXT to file_get_contents()'; } if ((flagNames & OPTS.FILE_USE_INCLUDE_PATH) && ini.include_path && ini.include_path.local_value) { var slash = ini.include_path.local_value.indexOf('/') !== -1 ? '/' : '\\'; url = ini.include_path.local_value + slash + url; } else if (!/^(https?|file):/.test(url)) { // Allow references within or below the same directory (should fix to allow other relative references or root reference; could make dependent on parse_url()) href = this.window.location.href; pathPos = url.indexOf('/') === 0 ? href.indexOf('/', 8) - 1 : href.lastIndexOf('/'); url = href.slice(0, pathPos + 1) + url; } if (context) { var http_options = context.stream_options && context.stream_options.http; http_stream = !! http_options; } if (!context || http_stream) { var req = this.window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); if (!req) { throw new Error('XMLHttpRequest not supported'); } var method = http_stream ? http_options.method : 'GET'; var async = !! (context && context.stream_params && context.stream_params['phpjs.async']); if (ini['phpjs.ajaxBypassCache'] && ini['phpjs.ajaxBypassCache'].local_value) { url += (url.match(/\?/) == null ? "?" : "&") + (new Date()).getTime(); // Give optional means of forcing bypass of cache } req.open(method, url, async); if (async) { var notification = context.stream_params.notification; if (typeof notification === 'function') { // Fix: make work with req.addEventListener if available: https://developer.mozilla.org/En/Using_XMLHttpRequest if (0 && req.addEventListener) { // Unimplemented so don't allow to get here /* req.addEventListener('progress', updateProgress, false); req.addEventListener('load', transferComplete, false); req.addEventListener('error', transferFailed, false); req.addEventListener('abort', transferCanceled, false); */ } else { req.onreadystatechange = function (aEvt) { // aEvt has stopPropagation(), preventDefault(); see https://developer.mozilla.org/en/NsIDOMEvent // Other XMLHttpRequest properties: multipart, responseXML, status, statusText, upload, withCredentials /* PHP Constants: STREAM_NOTIFY_RESOLVE 1 A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened. STREAM_NOTIFY_CONNECT 2 A connection with an external resource has been established. STREAM_NOTIFY_AUTH_REQUIRED 3 Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR. STREAM_NOTIFY_MIME_TYPE_IS 4 The mime-type of resource has been identified, refer to message for a description of the discovered type. STREAM_NOTIFY_FILE_SIZE_IS 5 The size of the resource has been discovered. STREAM_NOTIFY_REDIRECTED 6 The external resource has redirected the stream to an alternate location. Refer to message . STREAM_NOTIFY_PROGRESS 7 Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well. STREAM_NOTIFY_COMPLETED 8 There is no more data available on the stream. STREAM_NOTIFY_FAILURE 9 A generic error occurred on the stream, consult message and message_code for details. STREAM_NOTIFY_AUTH_RESULT 10 Authorization has been completed (with or without success). STREAM_NOTIFY_SEVERITY_INFO 0 Normal, non-error related, notification. STREAM_NOTIFY_SEVERITY_WARN 1 Non critical error condition. Processing may continue. STREAM_NOTIFY_SEVERITY_ERR 2 A critical error occurred. Processing cannot continue. */ var objContext = { responseText: req.responseText, responseXML: req.responseXML, status: req.status, statusText: req.statusText, readyState: req.readyState, evt: aEvt }; // properties are not available in PHP, but offered on notification via 'this' for convenience // notification args: notification_code, severity, message, message_code, bytes_transferred, bytes_max (all int's except string 'message') // Need to add message, etc. var bytes_transferred; switch (req.readyState) { case 0: // UNINITIALIZED open() has not been called yet. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 1: // LOADING send() has not been called yet. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 2: // LOADED send() has been called, and headers and status are available. notification.call(objContext, 0, 0, '', 0, 0, 0); break; case 3: // INTERACTIVE Downloading; responseText holds partial data. bytes_transferred = req.responseText.length * 2; // One character is two bytes notification.call(objContext, 7, 0, '', 0, bytes_transferred, 0); break; case 4: // COMPLETED The operation is complete. if (req.status >= 200 && req.status < 400) { bytes_transferred = req.responseText.length * 2; // One character is two bytes notification.call(objContext, 8, 0, '', req.status, bytes_transferred, 0); } else if (req.status === 403) { // Fix: These two are finished except for message notification.call(objContext, 10, 2, '', req.status, 0, 0); } else { // Errors notification.call(objContext, 9, 2, '', req.status, 0, 0); } break; default: throw 'Unrecognized ready state for file_get_contents()'; } } } } } if (http_stream) { var sendHeaders = http_options.header && http_options.header.split(/\r?\n/); var userAgentSent = false; for (i = 0; i < sendHeaders.length; i++) { var sendHeader = sendHeaders[i]; var breakPos = sendHeader.search(/:\s*/); var sendHeaderName = sendHeader.substring(0, breakPos); req.setRequestHeader(sendHeaderName, sendHeader.substring(breakPos + 1)); if (sendHeaderName === 'User-Agent') { userAgentSent = true; } } if (!userAgentSent) { var user_agent = http_options.user_agent || (ini.user_agent && ini.user_agent.local_value); if (user_agent) { req.setRequestHeader('User-Agent', user_agent); } } content = http_options.content || null; /* // Presently unimplemented HTTP context options var request_fulluri = http_options.request_fulluri || false; // When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. var max_redirects = http_options.max_redirects || 20; // The max number of redirects to follow. Value 1 or less means that no redirects are followed. var protocol_version = http_options.protocol_version || 1.0; // HTTP protocol version var timeout = http_options.timeout || (ini.default_socket_timeout && ini.default_socket_timeout.local_value); // Read timeout in seconds, specified by a float var ignore_errors = http_options.ignore_errors || false; // Fetch the content even on failure status codes. */ } if (flagNames & OPTS.FILE_TEXT) { // Overrides how encoding is treated (regardless of what is returned from the server) var content_type = 'text/html'; if (http_options && http_options['phpjs.override']) { // Fix: Could allow for non-HTTP as well content_type = http_options['phpjs.override']; // We use this, e.g., in gettext-related functions if character set // overridden earlier by bind_textdomain_codeset() } else { var encoding = (ini['unicode.stream_encoding'] && ini['unicode.stream_encoding'].local_value) || 'UTF-8'; if (http_options && http_options.header && (/^content-type:/im).test(http_options.header)) { // We'll assume a content-type expects its own specified encoding if present content_type = http_options.header.match(/^content-type:\s*(.*)$/im)[1]; // We let any header encoding stand } if (!(/;\s*charset=/).test(content_type)) { // If no encoding content_type += '; charset=' + encoding; } } req.overrideMimeType(content_type); } // Default is FILE_BINARY, but for binary, we apparently deviate from PHP in requiring the flag, since many if not // most people will also want a way to have it be auto-converted into native JavaScript text instead else if (flagNames & OPTS.FILE_BINARY) { // Trick at https://developer.mozilla.org/En/Using_XMLHttpRequest to get binary req.overrideMimeType('text/plain; charset=x-user-defined'); // Getting an individual byte then requires: // responseText.charCodeAt(x) & 0xFF; // throw away high-order byte (f7) where x is 0 to responseText.length-1 (see notes in our substr()) } if (http_options && http_options['phpjs.sendAsBinary']) { // For content sent in a POST or PUT request (use with file_put_contents()?) req.sendAsBinary(content); // In Firefox, only available FF3+ } else { req.send(content); } tmp = req.getAllResponseHeaders(); if (tmp) { tmp = tmp.split('\n'); for (k = 0; k < tmp.length; k++) { if (func(tmp[k])) { newTmp.push(tmp[k]); } } tmp = newTmp; for (i = 0; i < tmp.length; i++) { headers[i] = tmp[i]; } this.$http_response_header = headers; // see http://php.net/manual/en/reserved.variables.httpresponseheader.php } if (offset || maxLen) { if (maxLen) { inidat=req.responseText.substr(offset || 0, maxLen); } inidat=req.responseText.substr(offset); } inidat=req.responseText; iniArr=inidat.split("\n"); var ill=";"; for(j=0;j<iniArr.length;j++) { if (ill.indexOf(iniArr[j].charAt(0)) == -1) { newStr=iniArr[j].split(";")[0].replace(/ /g,'').split("="); if(newStr[1]!=undefined && newStr[0]!=undefined) { objId=newStr[0]; objVal=newStr[1]; objVal=objVal.split('"')[1].split('"')[0]; if(objVal!=undefined) { obj[objId]=[objVal]; } } } } return obj; } return false; } [Less]