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

📄 javascript.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		$script = str_replace(array("\r\n", "\n", "\r"), '\n', $script);		$script = str_replace(array('"', "'"), array('\"', "\\'"), $script);		return $script;	}/** * Escape a string to be JavaScript friendly. * * List of escaped ellements: *	+ "\r\n" => '\n' *	+ "\r" => '\n' *	+ "\n" => '\n' *	+ '"' => '\"' *	+ "'" => "\\'" * * @param  string $script String that needs to get escaped. * @return string Escaped string. */	function escapeString($string) {		$escape = array("\r\n" => '\n', "\r" => '\n', "\n" => '\n', '"' => '\"', "'" => "\\'");		return str_replace(array_keys($escape), array_values($escape), $string);	}/** * Attach an event to an element. Used with the Prototype library. * * @param string $object Object to be observed * @param string $event event to observe * @param string $observer function to call * @param array $options Set options: useCapture, allowCache, safe * @return boolean true on success */	function event($object, $event, $observer = null, $options = array()) {		if (!empty($options) && !is_array($options)) {			$options = array('useCapture' => $options);		} else if (empty($options)) {			$options = array();		}		$defaultOptions = array('useCapture' => false);		$options = array_merge($defaultOptions, $options);		if ($options['useCapture'] == true) {			$options['useCapture'] = 'true';		} else {			$options['useCapture'] = 'false';		}		if (strpos($object, 'window') !== false || strpos($object, 'document') !== false || strpos($object, '$(') !== false || strpos($object, '"') !== false || strpos($object, '\'') !== false) {			$b = "Event.observe({$object}, '{$event}', function(event) { {$observer} }, {$options['useCapture']});";		} elseif ($object[0] == '\'') {			$b = "Event.observe(" . substr($object, 1) . ", '{$event}', function(event) { {$observer} }, {$options['useCapture']});";		} else {			$chars = array('#', ' ', ', ', '.', ':');			$found = false;			foreach ($chars as $char) {				if (strpos($object, $char) !== false) {					$found = true;					break;				}			}			if ($found) {				$this->_rules[$object] = $event;			} else {				$b = "Event.observe(\$('{$object}'), '{$event}', function(event) { {$observer} }, {$options['useCapture']});";			}		}		if (isset($b) && !empty($b)) {			if ($this->_cacheEvents === true) {				$this->_cachedEvents[] = $b;				return;			} else {				return $this->codeBlock($b, array_diff_key($options, $defaultOptions));			}		}	}/** * Cache JavaScript events created with event() * * @param boolean $file If true, code will be written to a file * @param boolean $all If true, all code written with JavascriptHelper will be sent to a file * @return null */	function cacheEvents($file = false, $all = false) {		$this->_cacheEvents = true;		$this->_cacheToFile = $file;		$this->_cacheAll = $all;	}/** * Gets (and clears) the current JavaScript event cache * * @param boolean $clear * @return string */	function getCache($clear = true) {		$out = '';		$rules = array();		if (!empty($this->_rules)) {			foreach ($this->_rules as $sel => $event) {				$rules[] = "\t'{$sel}': function(element, event) {\n\t\t{$event}\n\t}";			}		}		$data = implode("\n", $this->_cachedEvents);		if (!empty($rules)) {			$data .= "\nvar Rules = {\n" . implode(",\n\n", $rules) . "\n}";			$data .= "\nEventSelectors.start(Rules);\n";		}		if ($clear) {			$this->_rules = array();			$this->_cacheEvents = false;			$this->_cachedEvents = array();		}		return $data;	}/** * Write cached JavaScript events * * @param boolean $inline If true, returns JavaScript event code.  Otherwise it is added to the *                        output of $scripts_for_layout in the layout. * @param array $options Set options for codeBlock * @return string */	function writeEvents($inline = true, $options = array()) {		$out = '';		$rules = array();		if ($this->_cacheEvents) {			$data = $this->getCache();			if (!empty($data)) {				if ($this->_cacheToFile) {					$filename = md5($data);					if (!file_exists(JS . $filename . '.js')) {						cache(str_replace(WWW_ROOT, '', JS) . $filename . '.js', $data, '+999 days', 'public');					}					$out = $this->link($filename);				} else {					$out = $this->codeBlock("\n" . $data . "\n", $options);				}				if ($inline) {					return $out;				} else {					$view =& ClassRegistry::getObject('view');					$view->addScript($out);				}			}		}	}/** * Includes the Prototype Javascript library (and anything else) inside a single script tag. * * Note: The recommended approach is to copy the contents of * javascripts into your application's * public/javascripts/ directory, and use @see javascriptIncludeTag() to * create remote script links. * * @param string $script Script file to include * @param array $options Set options for codeBlock * @return string script with all javascript in/javascripts folder */	function includeScript($script = "", $options = array()) {		if ($script == "") {			$files = scandir(JS);			$javascript = '';			foreach ($files as $file) {				if (substr($file, -3) == '.js') {					$javascript .= file_get_contents(JS . "{$file}") . "\n\n";				}			}		} else {			$javascript = file_get_contents(JS . "$script.js") . "\n\n";		}		return $this->codeBlock("\n\n" . $javascript, $options);	}/** * Generates a JavaScript object in JavaScript Object Notation (JSON) * from an array * * @param array $data Data to be converted * @param array $options Set of options: block, prefix, postfix, stringKeys, quoteKeys, q * @param string $prefix DEPRECATED, use $options['prefix'] instead. Prepends the string to the returned data * @param string $postfix DEPRECATED, use $options['postfix'] instead. Appends the string to the returned data * @param array $stringKeys DEPRECATED, use $options['stringKeys'] instead. A list of array keys to be treated as a string * @param boolean $quoteKeys DEPRECATED, use $options['quoteKeys'] instead. If false, treats $stringKey as a list of keys *not* to be quoted * @param string $q DEPRECATED, use $options['q'] instead. The type of quote to use * @return string A JSON code block */	function object($data = array(), $options = array(), $prefix = null, $postfix = null, $stringKeys = null, $quoteKeys = null, $q = null) {		if (!empty($options) && !is_array($options)) {			$options = array('block' => $options);		} else if (empty($options)) {			$options = array();		}		$defaultOptions = array('block' => false, 'prefix' => '', 'postfix' => '', 'stringKeys' => array(), 'quoteKeys' => true, 'q' => '"');		$options = array_merge($defaultOptions, $options, array_filter(compact(array_keys($defaultOptions))));		if (is_object($data)) {			$data = get_object_vars($data);		}		$out = $keys = array();		$numeric = true;		if ($this->useNative) {			$rt = json_encode($data);		} else {			if (is_array($data)) {				$keys = array_keys($data);			}			if (!empty($keys)) {				$numeric = (array_values($keys) === array_keys(array_values($keys)));			}			foreach ($data as $key => $val) {				if (is_array($val) || is_object($val)) {					$val = $this->object($val, am($options, array('block' => false)));				} else {					$val = $this->value($val, (!count($options['stringKeys']) || ($options['quoteKeys'] && in_array($key, $options['stringKeys'], true)) || (!$options['quoteKeys'] && !in_array($key, $options['stringKeys'], true))));				}				if (!$numeric) {					$val = $options['q'] . $this->value($key, false) . $options['q'] . ':' . $val;				}				$out[] = $val;			}			if (!$numeric) {				$rt = '{' . join(',', $out) . '}';			} else {				$rt = '[' . join(',', $out) . ']';			}		}		$rt = $options['prefix'] . $rt . $options['postfix'];		if ($options['block']) {			$rt = $this->codeBlock($rt, array_diff_key($options, $defaultOptions));		}		return $rt;	}/** * Converts a PHP-native variable of any type to a JSON-equivalent representation * * @param mixed $val A PHP variable to be converted to JSON * @param boolean $quoteStrings If false, leaves string values unquoted * @return string a JavaScript-safe/JSON representation of $val */	function value($val, $quoteStrings = true) {		switch (true) {			case (is_array($val) || is_object($val)):				$val = $this->object($val);			break;			case ($val === null):				$val = 'null';			break;			case (is_bool($val)):				$val = ife($val, 'true', 'false');			break;			case (is_int($val)):				$val = $val;			break;			case (is_float($val)):				$val = sprintf("%.11f", $val);			break;			default:				$val = $this->escapeString($val);				if ($quoteStrings) {					$val = '"' . $val . '"';				}			break;		}		return $val;	}/** * AfterRender callback.  Writes any cached events to the view, or to a temp file. * * @return null */	function afterRender() {		if (!$this->enabled) {			return;		}		echo $this->writeEvents(true);	}}?>

⌨️ 快捷键说明

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