⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xajax.inc.php

📁 这是一个joomla系统的插件, 这是一个joomla系统的插件
💻 PHP
📖 第 1 页 / 共 3 页
字号:
	 * 	 * @param string an optional argument containing the full server file path	 *               of xajax.js.	 */	function autoCompressJavascript($sJsFullFilename=NULL)	{			$sJsFile = "xajax_js/xajax.js";				if ($sJsFullFilename) {			$realJsFile = $sJsFullFilename;		}		else {			$realPath = realpath(dirname(__FILE__));			$realJsFile = $realPath . "/". $sJsFile;		}		// Create a compressed file if necessary		if (!file_exists($realJsFile)) {			$srcFile = str_replace(".js", "_uncompressed.js", $realJsFile);			if (!file_exists($srcFile)) {				trigger_error("The xajax uncompressed Javascript file could not be found in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);				}			require(dirname(__FILE__)."/xajaxCompress.php");			$javaScript = implode('', file($srcFile));			$compressedScript = xajaxCompressJavascript($javaScript);			$fH = @fopen($realJsFile, "w");			if (!$fH) {				trigger_error("The xajax compressed javascript file could not be written in the <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);			}			else {				fwrite($fH, $compressedScript);				fclose($fH);			}		}	}		/**	 * Returns the current URL based upon the SERVER vars.	 * 	 * @access private	 * @return string	 */	function _detectURI() {		$aURL = array();		// Try to get the request URL		if (!empty($_SERVER['REQUEST_URI'])) {			$aURL = parse_url($_SERVER['REQUEST_URI']);		}		// Fill in the empty values		if (empty($aURL['scheme'])) {			if (!empty($_SERVER['HTTP_SCHEME'])) {				$aURL['scheme'] = $_SERVER['HTTP_SCHEME'];			} else {				$aURL['scheme'] = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? 'https' : 'http';			}		}		if (empty($aURL['host'])) {			if (!empty($_SERVER['HTTP_HOST'])) {				if (strpos($_SERVER['HTTP_HOST'], ':') > 0) {					list($aURL['host'], $aURL['port']) = explode(':', $_SERVER['HTTP_HOST']);				} else {					$aURL['host'] = $_SERVER['HTTP_HOST'];				}			} else if (!empty($_SERVER['SERVER_NAME'])) {				$aURL['host'] = $_SERVER['SERVER_NAME'];			} else {				print "xajax Error: xajax failed to automatically identify your Request URI.";				print "Please set the Request URI explicitly when you instantiate the xajax object.";				exit();			}		}		if (empty($aURL['port']) && !empty($_SERVER['SERVER_PORT'])) {			$aURL['port'] = $_SERVER['SERVER_PORT'];		}		if (empty($aURL['path'])) {			if (!empty($_SERVER['PATH_INFO'])) {				$sPath = parse_url($_SERVER['PATH_INFO']);			} else {				$sPath = parse_url($_SERVER['PHP_SELF']);			}			$aURL['path'] = $sPath['path'];			unset($sPath);		}		if (!empty($aURL['query'])) {			$aURL['query'] = '?'.$aURL['query'];		}		// Build the URL: Start with scheme, user and pass		$sURL = $aURL['scheme'].'://';		if (!empty($aURL['user'])) {			$sURL.= $aURL['user'];			if (!empty($aURL['pass'])) {				$sURL.= ':'.$aURL['pass'];			}			$sURL.= '@';		}		// Add the host		$sURL.= $aURL['host'];		// Add the port if needed		if (!empty($aURL['port']) && (($aURL['scheme'] == 'http' && $aURL['port'] != 80) || ($aURL['scheme'] == 'https' && $aURL['port'] != 443))) {			$sURL.= ':'.$aURL['port'];		}		// Add the path and the query string		$sURL.= $aURL['path'].@$aURL['query'];		// Clean up		unset($aURL);		return $sURL;	}		/**	 * Returns true if the function name is associated with an object callback,	 * false if not.	 * 	 * @param string the name of the function	 * @access private	 * @return boolean	 */	function _isObjectCallback($sFunction)	{		if (array_key_exists($sFunction, $this->aObjects)) return true;		return false;	}		/**	 * Returns true if the function or object callback can be called, false if	 * not.	 * 	 * @param string the name of the function	 * @access private	 * @return boolean	 */	function _isFunctionCallable($sFunction)	{		if ($this->_isObjectCallback($sFunction)) {			if (is_object($this->aObjects[$sFunction][0])) {				return method_exists($this->aObjects[$sFunction][0], $this->aObjects[$sFunction][1]);			}			else {				return is_callable($this->aObjects[$sFunction]);			}		}		else {			return function_exists($sFunction);		}		}		/**	 * Calls the function, class method, or object method with the supplied	 * arguments.	 * 	 * @param string the name of the function	 * @param array  arguments to pass to the function	 * @access private	 * @return mixed the output of the called function or method	 */	function _callFunction($sFunction, $aArgs)	{		if ($this->_isObjectCallback($sFunction)) {			$mReturn = call_user_func_array($this->aObjects[$sFunction], $aArgs);		}		else {			$mReturn = call_user_func_array($sFunction, $aArgs);		}		return $mReturn;	}		/**	 * Generates the Javascript wrapper for the specified PHP function.	 * 	 * @param string the name of the function	 * @param mixed  the request type	 * @access private	 * @return string	 */	function _wrap($sFunction,$sRequestType=XAJAX_POST)	{		$js = "function ".$this->sWrapperPrefix."$sFunction(){return xajax.call(\"$sFunction\", arguments, ".$sRequestType.",\"".$this->sWrapperPrefix."\");}\n";				return $js;	}	/**	 * Takes a string containing xajax xjxobj XML or xjxquery XML and builds an	 * array representation of it to pass as an argument to the PHP function	 * being called.	 * 	 * @param string the root tag of the XML	 * @param string XML to convert	 * @access private	 * @return array	 */	function _xmlToArray($rootTag, $sXml)	{		$aArray = array();		$sXml = str_replace("<$rootTag>","<$rootTag>|~|",$sXml);		$sXml = str_replace("</$rootTag>","</$rootTag>|~|",$sXml);		$sXml = str_replace("<e>","<e>|~|",$sXml);		$sXml = str_replace("</e>","</e>|~|",$sXml);		$sXml = str_replace("<k>","<k>|~|",$sXml);		$sXml = str_replace("</k>","|~|</k>|~|",$sXml);		$sXml = str_replace("<v>","<v>|~|",$sXml);		$sXml = str_replace("</v>","|~|</v>|~|",$sXml);		$sXml = str_replace("<q>","<q>|~|",$sXml);		$sXml = str_replace("</q>","|~|</q>|~|",$sXml);				$this->aObjArray = explode("|~|",$sXml);				$this->iPos = 0;		$aArray = $this->_parseObjXml($rootTag);        		return $aArray;	}		/**	 * A recursive function that generates an array from the contents of	 * $this->aObjArray.	 * 	 * @param string the root tag of the XML	 * @access private	 * @return array	 */	function _parseObjXml($rootTag)	{		$aArray = array();				if ($rootTag == "xjxobj")		{			while(!stristr($this->aObjArray[$this->iPos],"</xjxobj>"))			{				$this->iPos++;				if(stristr($this->aObjArray[$this->iPos],"<e>"))				{					$key = "";					$value = null;											$this->iPos++;					while(!stristr($this->aObjArray[$this->iPos],"</e>"))					{						if(stristr($this->aObjArray[$this->iPos],"<k>"))						{							$this->iPos++;							while(!stristr($this->aObjArray[$this->iPos],"</k>"))							{								$key .= $this->aObjArray[$this->iPos];								$this->iPos++;							}						}						if(stristr($this->aObjArray[$this->iPos],"<v>"))						{							$this->iPos++;							while(!stristr($this->aObjArray[$this->iPos],"</v>"))							{								if(stristr($this->aObjArray[$this->iPos],"<xjxobj>"))								{									$value = $this->_parseObjXml("xjxobj");									$this->iPos++;								}								else								{									$value .= $this->aObjArray[$this->iPos];									if ($this->bDecodeUTF8Input)									{										$value = $this->_decodeUTF8Data($value);									}								}								$this->iPos++;							}						}						$this->iPos++;					}										$aArray[$key]=$value;				}			}		}				if ($rootTag == "xjxquery")		{			$sQuery = "";			$this->iPos++;			while(!stristr($this->aObjArray[$this->iPos],"</xjxquery>"))			{				if (stristr($this->aObjArray[$this->iPos],"<q>") || stristr($this->aObjArray[$this->iPos],"</q>"))				{					$this->iPos++;					continue;				}				$sQuery	.= $this->aObjArray[$this->iPos];				$this->iPos++;			}						parse_str($sQuery, $aArray);			if ($this->bDecodeUTF8Input)			{				foreach($aArray as $key => $value)				{					$aArray[$key] = $this->_decodeUTF8Data($value);				}			}			// If magic quotes is on, then we need to strip the slashes from the			// array values because of the parse_str pass which adds slashes			if (get_magic_quotes_gpc() == 1) {				$newArray = array();				foreach ($aArray as $sKey => $sValue) {					if (is_string($sValue))						$newArray[$sKey] = stripslashes($sValue);					else						$newArray[$sKey] = $sValue;				}				$aArray = $newArray;			}		}				return $aArray;	}		/**	 * Decodes string data from UTF-8 to the current xajax encoding.	 * 	 * @param string data to convert	 * @access private	 * @return string converted data	 */	function _decodeUTF8Data($sData)	{		$sValue = $sData;		if ($this->bDecodeUTF8Input)		{			$sFuncToUse = NULL;						if (function_exists('iconv'))			{				$sFuncToUse = "iconv";			}			else if (function_exists('mb_convert_encoding'))			{				$sFuncToUse = "mb_convert_encoding";			}			else if ($this->sEncoding == "ISO-8859-1")			{				$sFuncToUse = "utf8_decode";			}			else			{				trigger_error("The incoming xajax data could not be converted from UTF-8", E_USER_NOTICE);			}						if ($sFuncToUse)			{				if (is_string($sValue))				{					if ($sFuncToUse == "iconv")					{						$sValue = iconv("UTF-8", $this->sEncoding.'//TRANSLIT', $sValue);					}					else if ($sFuncToUse == "mb_convert_encoding")					{						$sValue = mb_convert_encoding($sValue, $this->sEncoding, "UTF-8");					}					else					{						$sValue = utf8_decode($sValue);					}				}			}		}		return $sValue;		}		}// end class xajax /** * This function is registered with PHP's set_error_handler() function if * the xajax error handling system is turned on. */function xajaxErrorHandler($errno, $errstr, $errfile, $errline){	$errorReporting = error_reporting();	if (($errno & $errorReporting) == 0) return;		if ($errno == E_NOTICE) {		$errTypeStr = "NOTICE";	}	else if ($errno == E_WARNING) {		$errTypeStr = "WARNING";	}	else if ($errno == E_USER_NOTICE) {		$errTypeStr = "USER NOTICE";	}	else if ($errno == E_USER_WARNING) {		$errTypeStr = "USER WARNING";	}	else if ($errno == E_USER_ERROR) {		$errTypeStr = "USER FATAL ERROR";	}	else if ($errno == E_STRICT) {		return;	}	else {		$errTypeStr = "UNKNOWN: $errno";	}	$GLOBALS['xajaxErrorHandlerText'] .= "\n----\n[$errTypeStr] $errstr\nerror in line $errline of file $errfile";}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -