cari

redis缓存如何使用

Jun 29, 2019 am 10:24 AM

redis缓存如何使用

redis缓存技术,一般用在一些经常查询且不经常改变的数据上,可以从数据库查询存到redis缓存中(redis缓存是存在内存中,可以长久保持),用户访问时直接读取缓存中的数据,这样在访问量和并发很大时就不会出现数据库查询慢的情况,实际项目中,一般将数据库的数据数组转化为json字符串,使用set方法保存、get方法获取即可。下面列举一些redis的使用方法。

$redis = new redis(); 
$result = $redis->connect('127.0.0.1', 6379);
//$redis->auth('pt#1234@re'); //存在密码时链接
var_dump($result); //结果:bool(true) 
$redis->set('name',111);
$redis->lpush('value',111);
$redis->expire('name',10);//设置过期时间,不设置过去时间时,默认为永久保持
//$redis->expire('value',10);//不设置时,默认为-1,永久保持

1,connect
描述:实例连接到一个Redis.
参数:host: string,port: int
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
示例:

<?php  
$redis = new redis();  
$result = $redis->connect(&#39;127.0.0.1&#39;, 6379);  
var_dump($result); //结果:bool(true)  
?>

2,set
描述:设置key和value的值
参数:Key Value
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
示例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$result = $redis->set(&#39;test&#39;,"11111111111");  
var_dump($result);    //结果:bool(true)  
?>

3,get
描述:获取有关指定键的值
参数:key
返回值:string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$result = $redis->get(&#39;test&#39;);  
var_dump($result);   //结果:string(11) "11111111111"  
?>

4,delete
描述:删除指定的键
参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN
返回值:删除的项数
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test&#39;,"1111111111111");  
echo $redis->get(&#39;test&#39;);   //结果:1111111111111  
$redis->delete(&#39;test&#39;);  
var_dump($redis->get(&#39;test&#39;));  //结果:bool(false)  
?>

5,setnx
描述:如果在数据库中不存在该键,设置关键值参数
参数:key value
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test&#39;,"1111111111111");  
$redis->setnx(&#39;test&#39;,"22222222");  
echo $redis->get(&#39;test&#39;);  //结果:1111111111111  
$redis->delete(&#39;test&#39;);  
$redis->setnx(&#39;test&#39;,"22222222");  
echo $redis->get(&#39;test&#39;);  //结果:22222222  
?>

6,exists
描述:验证指定的键是否存在
参数key
返回值:Bool 成功返回:TRUE;失败返回:FALSE
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test&#39;,"1111111111111");  
var_dump($redis->exists(&#39;test&#39;));  //结果:bool(true)  
?>

7,incr
描述:数字递增存储键值键.
参数:key value:将被添加到键的值
返回值:INT the new value
实例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test&#39;,"123");  
var_dump($redis->incr("test"));  //结果:int(124)  
var_dump($redis->incr("test"));  //结果:int(125)  
?>

8,decr
描述:数字递减存储键值。
参数:key value:将被添加到键的值
返回值:INT the new value
实例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test&#39;,"123");  
var_dump($redis->decr("test"));  //结果:int(122)  
var_dump($redis->decr("test"));  //结果:int(121)  
?>

9,getMultiple
描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假
参数:其中包含键值的列表数组
返回值:返回包含所有键的值的数组
实例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->set(&#39;test1&#39;,"1");  
$redis->set(&#39;test2&#39;,"2");  
$result = $redis->getMultiple(array(&#39;test1&#39;,&#39;test2&#39;));  
print_r($result);   //结果:Array ( [0] => 1 [1] => 2 )  
?>

10,lpush
描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
参数:key,value
返回值:成功返回数组长度,失败false
实例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
var_dump($redis->lpush("test","111"));   //结果:int(1)  
var_dump($redis->lpush("test","222"));   //结果:int(2)  
?>

11,rpush
描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
参数:key,value
返回值:成功返回数组长度,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
var_dump($redis->lpush("test","111"));   //结果:int(1)  
var_dump($redis->lpush("test","222"));   //结果:int(2)  
var_dump($redis->rpush("test","333"));   //结果:int(3)  
var_dump($redis->rpush("test","444"));   //结果:int(4)  
?>

12,lpop
描述:返回和移除列表的第一个元素
参数:key
返回值:成功返回第一个元素的值 ,失败返回false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush("test","111");  
$redis->lpush("test","222");  
$redis->rpush("test","333");  
$redis->rpush("test","444");  
var_dump($redis->lpop("test"));  //结果:string(3) "222"  
?>

13,lsize,llen
描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。
参数:Key
返回值:成功返回数组长度,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush("test","111");  
$redis->lpush("test","222");  
$redis->rpush("test","333");  
$redis->rpush("test","444");  
var_dump($redis->lsize("test"));  //结果:int(4)  
?>

14,lget
描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。
参数:key index
返回值:成功返回指定元素的值,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush("test","111");  
$redis->lpush("test","222");  
$redis->rpush("test","333");  
$redis->rpush("test","444");  
var_dump($redis->lget("test",3));  //结果:string(3) "444"  
?>

15,lset
描述:为列表指定的索引赋新的值,若不存在该索引返回false.
参数:key index value
返回值:成功返回true,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush("test","111");  
$redis->lpush("test","222");  
var_dump($redis->lget("test",1));  //结果:string(3) "111"  
var_dump($redis->lset("test",1,"333"));  //结果:bool(true)  
var_dump($redis->lget("test",1));  //结果:string(3) "333"  
?>

16,lgetrange
描述:
返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…
参数:key start end
返回值:成功返回查找的值,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush("test","111");  
$redis->lpush("test","222");  
print_r($redis->lgetrange("test",0,-1));  //结果:Array ( [0] => 222 [1] => 111 )  
?>

17,lremove
描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。
参数:key count value
返回值:成功返回删除的个数,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->lpush(&#39;test&#39;,&#39;a&#39;);  
$redis->lpush(&#39;test&#39;,&#39;b&#39;);  
$redis->lpush(&#39;test&#39;,&#39;c&#39;);  
$redis->rpush(&#39;test&#39;,&#39;a&#39;);  
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a )  
var_dump($redis->lremove(&#39;test&#39;,&#39;a&#39;,2));   //结果:int(2)  
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b )  
?>

18,sadd
描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。
参数:key value
返回值:成功返回true,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
var_dump($redis->sadd(&#39;test&#39;,&#39;111&#39;));   //结果:bool(true)  
var_dump($redis->sadd(&#39;test&#39;,&#39;333&#39;));   //结果:bool(true)  
print_r($redis->sort(&#39;test&#39;)); //结果:Array ( [0] => 111 [1] => 333 )  
?>

19,sremove
描述:删除Key中指定的value值
参数:key member
返回值:true or false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd(&#39;test&#39;,&#39;111&#39;);  
$redis->sadd(&#39;test&#39;,&#39;333&#39;);  
$redis->sremove(&#39;test&#39;,&#39;111&#39;);  
print_r($redis->sort(&#39;test&#39;));    //结果:Array ( [0] => 333 )  
?>

20,smove
描述:将Key1中的value移动到Key2中
参数:srcKey dstKey member
返回值:true or false
范例

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->delete(&#39;test1&#39;);  
$redis->sadd(&#39;test&#39;,&#39;111&#39;);  
$redis->sadd(&#39;test&#39;,&#39;333&#39;);  
$redis->sadd(&#39;test1&#39;,&#39;222&#39;);  
$redis->sadd(&#39;test1&#39;,&#39;444&#39;);  
$redis->smove(&#39;test&#39;,"test1",&#39;111&#39;);  
print_r($redis->sort(&#39;test1&#39;));    //结果:Array ( [0] => 111 [1] => 222 [2] => 444 )  
?>

21,scontains
描述:检查集合中是否存在指定的值。
参数:key value
返回值:true or false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd(&#39;test&#39;,&#39;111&#39;);  
$redis->sadd(&#39;test&#39;,&#39;112&#39;);  
$redis->sadd(&#39;test&#39;,&#39;113&#39;);  
var_dump($redis->scontains(&#39;test&#39;, &#39;111&#39;)); //结果:bool(true)  
?>

22,ssize
描述:返回集合中存储值的数量
参数:key
返回值:成功返回数组个数,失败0
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd(&#39;test&#39;,&#39;111&#39;);  
$redis->sadd(&#39;test&#39;,&#39;112&#39;);  
echo $redis->ssize(&#39;test&#39;);   //结果:2  
?>

23,spop
描述:随机移除并返回key中的一个值
参数:key
返回值:成功返回删除的值,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
var_dump($redis->spop("test"));  //结果:string(3) "333"  
?>

24,sinter
描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。
参数:key1, key2, keyN
返回值:成功返回数组交集,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
var_dump($redis->sinter("test","test1"));  //结果:array(1) { [0]=> string(3) "111" }  
?>

25,sinterstore
描述:执行sInter命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1"));  //结果:int(1)  
var_dump($redis->smembers(&#39;new&#39;));  //结果:array(1) { [0]=> string(3) "111" }  
?>

26,sunion
描述:
返回一个所有指定键的并集
参数:
Keys: key1, key2, … , keyN
返回值:成功返回合并后的集,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
print_r($redis->sunion("test","test1"));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )  
?>

27,sunionstore
描述:执行sunion命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1"));  //结果:int(4)  
print_r($redis->smembers(&#39;new&#39;));  //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 ) 
?>

28,sdiff
描述:返回第一个集合中存在并在其他所有集合中不存在的结果
参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:成功返回数组,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
print_r($redis->sdiff("test","test1"));  //结果:Array ( [0] => 222 [1] => 333 )  
?>

29,sdiffstore
描述:执行sdiff命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis
返回值:成功返回数字,失败false
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
$redis->sadd("test1","111");  
$redis->sadd("test1","444");  
var_dump($redis->sdiffstore(&#39;new&#39;,"test","test1"));  //结果:int(2)  
print_r($redis->smembers(&#39;new&#39;));  //结果:Array ( [0] => 222 [1] => 333 )  
?>

30,smembers, sgetmembers
描述:
返回集合的内容
参数:Key: key
返回值:An array of elements, the contents of the set.
范例:

<?php  
$redis = new redis();  
$redis->connect(&#39;127.0.0.1&#39;, 6379);  
$redis->delete(&#39;test&#39;);  
$redis->sadd("test","111");  
$redis->sadd("test","222");  
print_r($redis->smembers(&#39;test&#39;));  //结果:Array ( [0] => 111 [1] => 222 )  
?>

更多Redis相关知识,请访问Redis使用教程栏目!

Atas ialah kandungan terperinci redis缓存如何使用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:博客园. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Python vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python vs C: Pengurusan dan Kawalan MemoriPython vs C: Pengurusan dan Kawalan MemoriApr 19, 2025 am 12:17 AM

Python dan C mempunyai perbezaan yang signifikan dalam pengurusan dan kawalan memori. 1. Python menggunakan pengurusan memori automatik, berdasarkan pengiraan rujukan dan pengumpulan sampah, memudahkan kerja pengaturcara. 2.C memerlukan pengurusan memori manual, memberikan lebih banyak kawalan tetapi meningkatkan risiko kerumitan dan kesilapan. Bahasa mana yang harus dipilih harus berdasarkan keperluan projek dan timbunan teknologi pasukan.

Python untuk pengkomputeran saintifik: rupa terperinciPython untuk pengkomputeran saintifik: rupa terperinciApr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python dan C: Mencari alat yang betulPython dan C: Mencari alat yang betulApr 19, 2025 am 12:04 AM

Sama ada untuk memilih Python atau C bergantung kepada keperluan projek: 1) Python sesuai untuk pembangunan pesat, sains data, dan skrip kerana sintaks ringkas dan perpustakaan yang kaya; 2) C sesuai untuk senario yang memerlukan prestasi tinggi dan kawalan asas, seperti pengaturcaraan sistem dan pembangunan permainan, kerana kompilasi dan pengurusan memori manualnya.

Python untuk sains data dan pembelajaran mesinPython untuk sains data dan pembelajaran mesinApr 19, 2025 am 12:02 AM

Python digunakan secara meluas dalam sains data dan pembelajaran mesin, terutamanya bergantung pada kesederhanaannya dan ekosistem perpustakaan yang kuat. 1) PANDAS digunakan untuk pemprosesan dan analisis data, 2) Numpy menyediakan pengiraan berangka yang cekap, dan 3) SCIKIT-Learn digunakan untuk pembinaan dan pengoptimuman model pembelajaran mesin, perpustakaan ini menjadikan Python alat yang ideal untuk sains data dan pembelajaran mesin.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python untuk Pembangunan Web: Aplikasi UtamaPython untuk Pembangunan Web: Aplikasi UtamaApr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

Python vs C: Meneroka Prestasi dan KecekapanPython vs C: Meneroka Prestasi dan KecekapanApr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual