Maison développement back-end tutoriel php php代码兑现aes加密

php代码兑现aes加密

Jun 13, 2016 am 10:58 AM
function

php代码实现aes加密
发现php4的加密模块在php5的不被支持了,硬要加上这个模块会导致启动时候出现警告对话框。
于是花了一天时间将as3的加密类翻译成了php的,该加密类是google的开源项目
http://code.google.com/p/as3crypto/


<?phprequire_once ("PKCS5.php");require_once("AESKey.php");require_once("ECBMode.php");require_once("Hex.php");class Aes{	private $_pad;//填充方式	private $_mode;//加密类	/**	 * 构造函数	 * @param	base64keyString   密钥base64编码字符串	 */	public function Aes($base64keyString) 	{		$this->_pad = new PKCS5(); //为了与java保持一致,所以采用PKCS5填充		$key = Hex::string2ByteArray(base64_decode($base64keyString));		$this->_mode = new ECBMode(new AESKey($key), $this->_pad);		$this->_pad->setBlockSize($this->_mode->getBlockSize());	}			/**	 * 将明文加密为密文base64编码字符串	 * @param	plainSrc		 明文	 * @return	密文base64编码	 */	public function encrypt($plainSrc)	{		$src = Hex::string2ByteArray($plainSrc);		$src = $this->_mode->encrypt($src);				return base64_encode(Hex::ByteArray2String($src));	}		/**	 * 将base64编码字符串(密文)解密成 明文	 * @param	base64Src  密文base64编码字符串	 * @return	明文	 */	public function decrypt($base64Src)	{		$src = base64_decode($base64Src);		$src = $this->_mode->decrypt(Hex::string2ByteArray($src));		return Hex::byteArray2String($src);	}		/**	 * 释放内存	 */	public function dispose()	{		$this->_mode->dispose();	}}//var_dump(Hex::string2ByteArray(base64_decode("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw=")));$_aes = new Aes("MK2X82eL6jkKbzvlJU1ZMR6rcKO+SBhmbPOmFD/2Mxw=");//echo "=================<br>";$ret = $_aes->encrypt("1234567890abcdef1234567890abcdefaaafdsfsdffasfasfasfasdf");echo $ret;var_dump($_aes->decrypt($ret));?>
Copier après la connexion


<?phprequire_once ("IPad.php");class PKCS5 implements IPad{	private $blockSize = 0;		public function PKCS5($blockSize=0) {		$this->blockSize = $blockSize;	}		public function pad($a)	{		$c = $this->blockSize-count($a)%$this->blockSize;		for ($i=0;$iblockSize;		if ($c!=0) throw new Exception("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize");		$c = $a[$len-1];		array_splice($a,$len-$c,$c);		return $a;	}	public function setBlockSize($bs) 	{		$this->blockSize = $bs;	}}?>
Copier après la connexion




<?phprequire_once ("ISymmetricKey.php");require_once("AESKeyInclude.php");require_once("Hex.php");class AESKey implements ISymmetricKey{		private $_keyByte;	private $_keyLength;	private $_nNr;	private $_stateByte;	private $_tempByte;	public function AESKey($key/*:ByteArray*/) {		$this->_tempByte = array();		$this->_stateByte = array();		$this->_keyLength = count($key);		$this->_keyByte = $key;		$this->expandKey();	}		// produce Nb bytes for each round	private function expandKey() 	{		$tmp0=0;		$tmp1=0;		$tmp2=0;		$tmp3=0;		$tmp4=0;		$idx=0;		$Nk = $this->_keyLength/4;		//echo("count:".$Nk."<br>".count($this->_keyByte)."<br>");		$this->_nNr = $Nk+6;		$_keyByte = $this->_keyByte;		$_nNr = $this->_nNr;		$Nb = AESKeyInclude::$Nb;		$Sbox = AESKeyInclude::$_Sbox;		$Rcon = AESKeyInclude::$_Rcon;				for( $idx = $Nk; $idx  6 && $idx % $Nk == 4 ) {				$tmp0 = $Sbox[$tmp0];				$tmp1 = $Sbox[$tmp1];				$tmp2 = $Sbox[$tmp2];				$tmp3 = $Sbox[$tmp3];			}				$_keyByte[4*$idx+0] = $_keyByte[4*$idx - 4*$Nk + 0] ^ $tmp0;			$_keyByte[4*$idx+1] = $_keyByte[4*$idx - 4*$Nk + 1] ^ $tmp1;			$_keyByte[4*$idx+2] = $_keyByte[4*$idx - 4*$Nk + 2] ^ $tmp2;			$_keyByte[4*$idx+3] = $_keyByte[4*$idx - 4*$Nk + 3] ^ $tmp3;		}		$this->_keyByte = $_keyByte;	}	public function getBlockSize()	{		return 16;	}		// encrypt one 128 bit block	public function encrypt($block, $index=0)	{		$_stateByte = &$this->_stateByte;		$_keyByte = &$this->_keyByte;		$Nb = AESKeyInclude::$Nb;		$_nNr = $this->_nNr;				$_stateByte = array();		$_stateByte = array_merge($_stateByte,array_slice($block,$index,$Nb*4));		$this->addRoundKey($_keyByte, 0);		for ( $round = 1; $round mixSubColumns();			} else {				$this->shiftRows();			}			$this->addRoundKey($_keyByte, $round * $Nb * 4);		}		return $_stateByte;	}		public function decrypt($block, $index=0)	{		$_stateByte = &$this->_stateByte;		$_keyByte = &$this->_keyByte;		$Nb = AESKeyInclude::$Nb;		$_nNr = $this->_nNr;				$_stateByte = array();		$_stateByte = array_merge($_stateByte,array_slice($block,$index,$Nb*4));				$this->addRoundKey($_keyByte, $_nNr*$Nb*4);		$this->invShiftRows();		for( $round = $_nNr; $round--; )		{			$this->addRoundKey( $_keyByte, $round*$Nb*4);			if ($round) {				$this->invMixSubColumns();			}		}		return $_stateByte;	}		public function dispose() {			}	// exchanges columns in each of 4 rows	// row0 - unchanged, row1- shifted left 1, 	// row2 - shifted left 2 and row3 - shifted left 3	protected function shiftRows()	{		$tmp = 0;			$_stateByte = &$this->_stateByte;		$Sbox = AESKeyInclude::$_Sbox;				// just substitute row 0		$_stateByte[0] = $Sbox[$_stateByte[0]]; $_stateByte[4] = $Sbox[$_stateByte[4]];		$_stateByte[8] = $Sbox[$_stateByte[8]]; $_stateByte[12] = $Sbox[$_stateByte[12]];			// rotate row 1		$tmp = $Sbox[$_stateByte[1]]; $_stateByte[1] = $Sbox[$_stateByte[5]];		$_stateByte[5] = $Sbox[$_stateByte[9]]; $_stateByte[9] = $Sbox[$_stateByte[13]]; $_stateByte[13] = $tmp;			// rotate row 2		$tmp = $Sbox[$_stateByte[2]]; $_stateByte[2] = $Sbox[$_stateByte[10]]; $_stateByte[10] = $tmp;		$tmp = $Sbox[$_stateByte[6]]; $_stateByte[6] = $Sbox[$_stateByte[14]]; $_stateByte[14] = $tmp;			// rotate row 3		$tmp = $Sbox[$_stateByte[15]]; $_stateByte[15] = $Sbox[$_stateByte[11]];		$_stateByte[11] = $Sbox[$_stateByte[7]]; $_stateByte[7] = $Sbox[$_stateByte[3]]; $_stateByte[3] = $tmp;			}		// restores columns in each of 4 rows	// row0 - unchanged, row1- shifted right 1, 	// row2 - shifted right 2 and row3 - shifted right 3	protected function invShiftRows ()	{		$tmp = 0;			$_stateByte = $this->_stateByte;		$InvSbox = AESKeyInclude::$_InvSbox;		// restore row 0		$_stateByte[0] = $InvSbox[$_stateByte[0]]; $_stateByte[4] = $InvSbox[$_stateByte[4]];		$_stateByte[8] = $InvSbox[$_stateByte[8]]; $_stateByte[12] = $InvSbox[$_stateByte[12]];			// restore row 1		$tmp = $InvSbox[$_stateByte[13]]; $_stateByte[13] = $InvSbox[$_stateByte[9]];		$_stateByte[9] = $InvSbox[$_stateByte[5]]; $_stateByte[5] = $InvSbox[$_stateByte[1]]; $_stateByte[1] = $tmp;			// restore row 2		$tmp = $InvSbox[$_stateByte[2]]; $_stateByte[2] = $InvSbox[$_stateByte[10]]; $_stateByte[10] = $tmp;		$tmp = $InvSbox[$_stateByte[6]]; $_stateByte[6] = $InvSbox[$_stateByte[14]]; $_stateByte[14] = $tmp;			// restore row 3		$tmp = $InvSbox[$_stateByte[3]]; $_stateByte[3] = $InvSbox[$_stateByte[7]];		$_stateByte[7] = $InvSbox[$_stateByte[11]]; $_stateByte[11] = $InvSbox[$_stateByte[15]]; $_stateByte[15] = $tmp;				$this->_stateByte = $_stateByte;	}		// recombine and mix each row in a column	protected function mixSubColumns ()	{		$_tempByte = array();//.length=0;		$Xtime2Sbox = AESKeyInclude::$_Xtime2Sbox;		$Xtime3Sbox = AESKeyInclude::$_Xtime3Sbox;		$_stateByte = &$this->_stateByte;		$Sbox = AESKeyInclude::$_Sbox;		// mixing column 0		$_tempByte[0] = $Xtime2Sbox[$_stateByte[0]] ^ $Xtime3Sbox[$_stateByte[5]] ^ $Sbox[$_stateByte[10]] ^ $Sbox[$_stateByte[15]];		$_tempByte[1] = $Sbox[$_stateByte[0]] ^ $Xtime2Sbox[$_stateByte[5]] ^ $Xtime3Sbox[$_stateByte[10]] ^ $Sbox[$_stateByte[15]];		$_tempByte[2] = $Sbox[$_stateByte[0]] ^ $Sbox[$_stateByte[5]] ^ $Xtime2Sbox[$_stateByte[10]] ^ $Xtime3Sbox[$_stateByte[15]];		$_tempByte[3] = $Xtime3Sbox[$_stateByte[0]] ^ $Sbox[$_stateByte[5]] ^ $Sbox[$_stateByte[10]] ^ $Xtime2Sbox[$_stateByte[15]];			// mixing column 1		$_tempByte[4] = $Xtime2Sbox[$_stateByte[4]] ^ $Xtime3Sbox[$_stateByte[9]] ^ $Sbox[$_stateByte[14]] ^ $Sbox[$_stateByte[3]];		$_tempByte[5] = $Sbox[$_stateByte[4]] ^ $Xtime2Sbox[$_stateByte[9]] ^ $Xtime3Sbox[$_stateByte[14]] ^ $Sbox[$_stateByte[3]];		$_tempByte[6] = $Sbox[$_stateByte[4]] ^ $Sbox[$_stateByte[9]] ^ $Xtime2Sbox[$_stateByte[14]] ^ $Xtime3Sbox[$_stateByte[3]];		$_tempByte[7] = $Xtime3Sbox[$_stateByte[4]] ^ $Sbox[$_stateByte[9]] ^ $Sbox[$_stateByte[14]] ^ $Xtime2Sbox[$_stateByte[3]];			// mixing column 2		$_tempByte[8] = $Xtime2Sbox[$_stateByte[8]] ^ $Xtime3Sbox[$_stateByte[13]] ^ $Sbox[$_stateByte[2]] ^ $Sbox[$_stateByte[7]];		$_tempByte[9] = $Sbox[$_stateByte[8]] ^ $Xtime2Sbox[$_stateByte[13]] ^ $Xtime3Sbox[$_stateByte[2]] ^ $Sbox[$_stateByte[7]];		$_tempByte[10]  = $Sbox[$_stateByte[8]] ^ $Sbox[$_stateByte[13]] ^ $Xtime2Sbox[$_stateByte[2]] ^ $Xtime3Sbox[$_stateByte[7]];		$_tempByte[11]  = $Xtime3Sbox[$_stateByte[8]] ^ $Sbox[$_stateByte[13]] ^ $Sbox[$_stateByte[2]] ^ $Xtime2Sbox[$_stateByte[7]];			// mixing column 3		$_tempByte[12] = $Xtime2Sbox[$_stateByte[12]] ^ $Xtime3Sbox[$_stateByte[1]] ^ $Sbox[$_stateByte[6]] ^ $Sbox[$_stateByte[11]];		$_tempByte[13] = $Sbox[$_stateByte[12]] ^ $Xtime2Sbox[$_stateByte[1]] ^ $Xtime3Sbox[$_stateByte[6]] ^ $Sbox[$_stateByte[11]];		$_tempByte[14] = $Sbox[$_stateByte[12]] ^ $Sbox[$_stateByte[1]] ^ $Xtime2Sbox[$_stateByte[6]] ^ $Xtime3Sbox[$_stateByte[11]];		$_tempByte[15] = $Xtime3Sbox[$_stateByte[12]] ^ $Sbox[$_stateByte[1]] ^ $Sbox[$_stateByte[6]] ^ $Xtime2Sbox[$_stateByte[11]];			/*		_stateByte.position=0;		_stateByte.writeBytes(_tempByte, 0, Nb*4);*/				$_stateByte = $_tempByte;				$this->_tempByte = $_tempByte;	}		// restore and un-mix each row in a column	protected function invMixSubColumns ()	{		$_tempByte = array();//.length=0;		$_stateByte = &$this->_stateByte;		$XtimeE = AESKeyInclude::$_XtimeE;		$XtimeB = AESKeyInclude::$_XtimeB;		$Xtime9 = AESKeyInclude::$_Xtime9;		$XtimeD = AESKeyInclude::$_XtimeD;		$InvSbox = AESKeyInclude::$_InvSbox;		$Nb = AESKeyInclude::$Nb;				// restore column 0		$_tempByte[0] = $XtimeE[$_stateByte[0]] ^ $XtimeB[$_stateByte[1]] ^ $XtimeD[$_stateByte[2]] ^ $Xtime9[$_stateByte[3]];		$_tempByte[5] = $Xtime9[$_stateByte[0]] ^ $XtimeE[$_stateByte[1]] ^ $XtimeB[$_stateByte[2]] ^ $XtimeD[$_stateByte[3]];		$_tempByte[10] = $XtimeD[$_stateByte[0]] ^ $Xtime9[$_stateByte[1]] ^ $XtimeE[$_stateByte[2]] ^ $XtimeB[$_stateByte[3]];		$_tempByte[15] = $XtimeB[$_stateByte[0]] ^ $XtimeD[$_stateByte[1]] ^ $Xtime9[$_stateByte[2]] ^ $XtimeE[$_stateByte[3]];			// restore column 1		$_tempByte[4] = $XtimeE[$_stateByte[4]] ^ $XtimeB[$_stateByte[5]] ^ $XtimeD[$_stateByte[6]] ^ $Xtime9[$_stateByte[7]];		$_tempByte[9] = $Xtime9[$_stateByte[4]] ^ $XtimeE[$_stateByte[5]] ^ $XtimeB[$_stateByte[6]] ^ $XtimeD[$_stateByte[7]];		$_tempByte[14] = $XtimeD[$_stateByte[4]] ^ $Xtime9[$_stateByte[5]] ^ $XtimeE[$_stateByte[6]] ^ $XtimeB[$_stateByte[7]];		$_tempByte[3] = $XtimeB[$_stateByte[4]] ^ $XtimeD[$_stateByte[5]] ^ $Xtime9[$_stateByte[6]] ^ $XtimeE[$_stateByte[7]];			// restore column 2		$_tempByte[8] = $XtimeE[$_stateByte[8]] ^ $XtimeB[$_stateByte[9]] ^ $XtimeD[$_stateByte[10]] ^ $Xtime9[$_stateByte[11]];		$_tempByte[13] = $Xtime9[$_stateByte[8]] ^ $XtimeE[$_stateByte[9]] ^ $XtimeB[$_stateByte[10]] ^ $XtimeD[$_stateByte[11]];		$_tempByte[2]  = $XtimeD[$_stateByte[8]] ^ $Xtime9[$_stateByte[9]] ^ $XtimeE[$_stateByte[10]] ^ $XtimeB[$_stateByte[11]];		$_tempByte[7]  = $XtimeB[$_stateByte[8]] ^ $XtimeD[$_stateByte[9]] ^ $Xtime9[$_stateByte[10]] ^ $XtimeE[$_stateByte[11]];			// restore column 3		$_tempByte[12] = $XtimeE[$_stateByte[12]] ^ $XtimeB[$_stateByte[13]] ^ $XtimeD[$_stateByte[14]] ^ $Xtime9[$_stateByte[15]];		$_tempByte[1] = $Xtime9[$_stateByte[12]] ^ $XtimeE[$_stateByte[13]] ^ $XtimeB[$_stateByte[14]] ^ $XtimeD[$_stateByte[15]];		$_tempByte[6] = $XtimeD[$_stateByte[12]] ^ $Xtime9[$_stateByte[13]] ^ $XtimeE[$_stateByte[14]] ^ $XtimeB[$_stateByte[15]];		$_tempByte[11] = $XtimeB[$_stateByte[12]] ^ $XtimeD[$_stateByte[13]] ^ $Xtime9[$_stateByte[14]] ^ $XtimeE[$_stateByte[15]];			for( $i=0; $i _stateByte;		for( $idx = 0; $idx _keyLength);	}}?>
Copier après la connexion


<?phprequire_once ("IMode.php");require_once("ICipher.php");require_once("ISymmetricKey.php");require_once("PKCS5.php");class ECBMode implements IMode{	private $_key;	private $_padding;		public function ECBMode($key/*:ISymmetricKey*/, $padding/*:IPad*/ = NULL) 	{		$this->_key = $key;		if ($padding == NULL) {			$padding = new PKCS5($key->getBlockSize());		} else {			$padding->setBlockSize($key->getBlockSize());		}		$this->_padding = $padding;	}		public function getBlockSize() {		return $this->_key->getBlockSize();	}		public function encrypt($src) 	{		$src = $this->_padding->pad($src);		$blockSize = $this->_key->getBlockSize();		$dst = array();		$len = count($src);		for ($i=0;$i_key->encrypt($tmp);			$dst = array_merge($dst,$ret);		}		return $dst;	}		public function decrypt($src) 	{		$blockSize = $this->_key->getBlockSize();				$len = count($src);		// sanity check.		if ($len % $blockSize!=0) {			throw new Exception("ECB mode cipher length must be a multiple of blocksize ".$blockSize);		}				$tmp = array();		$dst = array();				for ($i=0;$i_key->decrypt($tmp);			$dst = array_merge($dst,$ret);		}		$dst = $this->_padding->unpad($dst);		return $dst;	}		public function dispose() 	{			}		public function toString() {		return $this->_key->toString()."-ecb";	}}?>
Copier après la connexion



<?phpclass Hex{	static function string2ByteArray($src)	{		//$hex = bin2hex($src);		$ret = array();		$len = strlen($src);		for($i = 0; $i<$len; ++$i)		{			$ret[] = ord($src[$i]);		}		return $ret;	}		static function byteArray2String($src)	{		$ret = "";		$len = count($src);		for($i = 0; $i<$len; ++$i)		{			$ret .= chr($src[$i]);		}				return $ret;	}}?>
Copier après la connexion



<?phpinterface ICipher{	function getBlockSize();	function encrypt($src);	function decrypt($src);	function dispose();	function toString();}?>
Copier après la connexion



<?phprequire_once ("ICipher.php");interface IMode extends ICipher{}?>
Copier après la connexion



<?phpinterface IPad{	/**	 * Add padding to the array	 */	function pad($a);	/**	 * Remove padding from the array.	 * @throws Error if the padding is invalid.	 */	function unpad($a);	/**	 * Set the blockSize to work on	 */	function setBlockSize($bs);}?>
Copier après la connexion


<?phpinterface ISymmetricKey{	/**	 * Returns the block size used by this particular encryption algorithm	 */	function getBlockSize();	/**	 * Encrypt one block of data in "block", starting at "index", of length "getBlockSize()"	 */	function encrypt($block, $index);	/**	 * Decrypt one block of data in "block", starting at "index", of length "getBlockSize()"	 */	function decrypt($block, $index);	/**	 * Attempts to destroy sensitive information from memory, such as encryption keys.	 * Note: This is not guaranteed to work given the Flash sandbox model.	 */	function dispose();		function toString();}?>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie fonction ? Que signifie fonction ? Aug 04, 2023 am 10:33 AM

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

Quel est le but de la fonction « enumerate() » en Python ? Quel est le but de la fonction « enumerate() » en Python ? Sep 01, 2023 am 11:29 AM

Dans cet article, nous découvrirons la fonction enumerate() et le but de la fonction « enumerate() » en Python. Qu'est-ce que la fonction enumerate() ? La fonction enumerate() de Python accepte une collection de données comme paramètre et renvoie un objet d'énumération. Les objets d'énumération sont renvoyés sous forme de paires clé-valeur. La clé est l'index correspondant à chaque élément, et la valeur est les éléments. Syntaxe enumerate(iterable,start) Paramètres iterable - Les données transmises dans la collection peuvent être renvoyées sous forme d'objet d'énumération, appelé iterablestart - Comme son nom l'indique, l'index de départ de l'objet d'énumération est défini par start. si nous ignorons

Explication détaillée du rôle et de la fonction de la table MySQL.proc Explication détaillée du rôle et de la fonction de la table MySQL.proc Mar 16, 2024 am 09:03 AM

Explication détaillée du rôle et de la fonction de la table MySQL.proc MySQL est un système de gestion de bases de données relationnelles populaire. Lorsque les développeurs utilisent MySQL, ils impliquent souvent la création et la gestion de procédures stockées (StoredProcedure). La table MySQL.proc est une table système très importante. Elle stocke les informations relatives à toutes les procédures stockées dans la base de données, y compris le nom, la définition, les paramètres, etc. Dans cet article, nous expliquerons en détail le rôle et les fonctionnalités de la table MySQL.proc

L'utilisation et la fonction de la fonction Vue.use L'utilisation et la fonction de la fonction Vue.use Jul 24, 2023 pm 06:09 PM

Utilisation et fonction de Vue.use Function Vue est un framework frontal populaire qui fournit de nombreuses fonctionnalités et fonctions utiles. L'une d'elles est la fonction Vue.use, qui nous permet d'utiliser des plugins dans les applications Vue. Cet article présentera l'utilisation et la fonction de la fonction Vue.use et fournira quelques exemples de code. L'utilisation de base de la fonction Vue.use est très simple, il suffit de l'appeler avant que Vue ne soit instanciée, en passant le plugin que vous souhaitez utiliser comme paramètre. Voici un exemple simple : //Introduire et utiliser le plug-in

fonction file_exists() en PHP fonction file_exists() en PHP Sep 14, 2023 am 08:29 AM

La méthode file_exists vérifie si un fichier ou un répertoire existe. Il accepte comme argument le chemin du fichier ou du répertoire à vérifier. Voici à quoi il sert : c'est utile lorsque vous avez besoin de savoir si un fichier existe avant de le traiter. De cette façon, lors de la création d'un nouveau fichier, vous pourrez utiliser cette fonction pour savoir si le fichier existe déjà. Syntaxe file_exists($file_path) Paramètres file_path - Définit le chemin du fichier ou du répertoire dont l'existence doit être vérifiée. Requis. Renvoie la méthode file_exists(). Renvoie TrueFalse si le fichier ou le répertoire existe, si le fichier ou le répertoire n'existe pas. Exemple voyons une vérification du fichier "candidate.txt" et même si le fichier

A quoi sert la fonction js A quoi sert la fonction js Oct 07, 2023 am 11:25 AM

L'utilisation de la fonction js est : 1. Déclarer la fonction ; 2. Appeler la fonction ; 3. Paramètres de la fonction ; 5. Fonction anonyme ; 7. Portée de la fonction ;

Comment utiliser les fonctions SOA en PHP Comment utiliser les fonctions SOA en PHP May 18, 2023 pm 01:10 PM

Avec le développement d'Internet, la SOA (architecture orientée services) est devenue une architecture technique importante dans les systèmes d'entreprise actuels. Les services de l'architecture SOA peuvent être réutilisés, réorganisés et étendus, tout en simplifiant également le processus de développement et de maintenance du système. En tant que langage de programmation Web largement utilisé, PHP fournit également des bibliothèques de fonctions pour la mise en œuvre de SOA. Nous détaillerons ensuite comment utiliser les fonctions SOA en PHP. 1. Le concept de base de SOA est une idée et une architecture de développement de système distribué.

fonction clearstatcache() en PHP fonction clearstatcache() en PHP Sep 07, 2023 am 09:33 AM

La fonction clearstatcache() est utilisée pour vider le cache d'état des fichiers. PHP met en cache les informations renvoyées par les fonctions suivantes -stat()lstat()file_exists()is_writable()is_readable()is_executable()is_file()is_dir()filegroup()fileowner()filesize()filetype()fileperms() Quoi à faire Pour offrir de meilleures performances. Syntaxe voidclearstatecache() Paramètre NA Valeur de retour clearstatcache(

See all articles