国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

? ??? ?? PHP ???? PHP? Redis? ???? ?? predis ??? ?? ?????.

PHP? Redis? ???? ?? predis ??? ?? ?????.

Jul 25, 2016 am 08:46 AM

PHP, ???, ????

Predis? PHP? Redis? ???? ?? ?? ???????, PHP5.3 ??? ????? ??? ??? ?? 25,000????. C ??? ??? PHP ??(?: C ?? phpredis https://github.com/owlient/phpredis ??)?? ???? ??? ?? ??? ???? ????.

?? ???? redis? ???? ?? ?? ?????.
session.save_handler = redis
session.save_path = “tcp://127.0.0.1:6379″

??? ?? ??? ??? ??? ????? ????? ?????.

  1. //?? ??? ???? ?? ?????? ?????. ??? ??? $file;
  2. spl_autoload_register(function($class) {
  3. $file = __DIR__.'? ???? ????. / lib/Predis/'.$class.'.php';
  4. if (file_exists($file)) {
  5. require $file;
  6. return true;
  7. }
  8. });
  9. //?? IP, ?? ? ?? ?????? ??
  10. $server = array(
  11. 'host' => '127.0.0.1',
  12. 'port' => ; 6379,
  13. '??????' => 15
  14. );
  15. $redis = new Client($server);
  16. //?? ??/???? ??
  17. $ redis- >set('library', 'predis');
  18. $retval = $redis->get('library');
  19. echo $retval; //'predis' ??
  20. //setex ?? ???? ??
  21. $redis->setex('str', 10, 'bar') //?? ????? 10??? ?????
  22. //setnx/ msetnx? ?????. ?? ??? ?? ?? ?? ???? ????.
  23. $redis->setnx('foo',12) //true
  24. $redis->setnx('foo',34) ); //false
  25. //set? ??? getset ??, ??? ?? ?? ?? ?????
  26. $redis->getset('foo',56);//returns 34
  27. // incrby/incr/decrby/decr ?? ???? ????.
  28. $redis->incr('foo') //foo? 57
  29. $redis->incrby(' foo',2); //foo? 59???
  30. //exists? ?? ?? ????? ?????
  31. $redis->exists('foo');//true
  32. //del delete
  33. $redis->del('foo');//true
  34. //?? ??, ??? ?? ???, ?? ?? ??, ?? ??? ?? ??/zset, ?? ???? ??? ?????
  35. $redis->type('foo');//???? ??? ??? ?????
  36. $redis->set('str','test');
  37. $redis ->type('str '); //???, ?? ???
  38. //append? ?? ???? ?????.
  39. $redis->append('str','_123'); //??? ?? ?????. ??? ??? 8??, ??? str? 'test_123'???
  40. //setrange ?? ?? ??
  41. $redis->setrange('str',0,'abc' ); //return 3, ???? 2? 0?? ?? ??
  42. $redis->setrange('str',2,'cd');//?? ??? ???? 4? ?????. ? ?? ?? ???? 'str'? 'abcd'???
  43. //substr ?? ?? ??
  44. $redis->substr('str',0,2);// 0?? ??, ? ?? ?? ????, ? 3?, 'abc' ??
  45. //strlen ??? ?? ????
  46. $redis->strlen('str') //Return 4
  47. //setbit/ getbit ?? ?? ? ??
  48. $redis->setbit('binary',31,1); //31?? ??? 1? ???? ?????. ??? ??? ??? ?????? ??? ??? ?? ????. getbit??? ??? ?????
  49. $redis->getbit('binary',31); //return 1
  50. //keys ?? ?? ??, * ?? ? ? ?? ??(? ??? ??)
  51. $redis->set('foo1',123);
  52. $redis->set('foo2',456);
  53. $redis->keys('foo*'); // foo1? foo2? ??? ?????.
  54. $redis->keys('f?o?') //?? ????
  55. //randomkey? ???? ?? ?????
  56. $redis->randomkey( ); //'foo1' ?? 'foo2' ? redis? ???? ?? ?? ??? ? ????
  57. //rename/ renamenx? ? ??? ????. ???? renamenx? ?? ??? ??? ???? ???? ????. key
  58. $redis->rename('str','str2') //?? ??? 'str'? ?? ' str2'
  59. //expire ? ??- ?? ???, ttl? ?? ?? ??? ???? ??? ?? ???? ??????
  60. $redis->expire('foo', 1) // ????? 1?? ??
  61. $redis->ttl( 'foo'); //???? ?? 1?? ??
  62. $redis->expire('foo'); //?? ?? ??
  63. //dbsize ?? Redis ??????? ? ??? ?? ?????.
  64. $redis->dbsize();
  65. /*
  66. ? ??
  67. * /
  68. //rpush/rpushx ??? ??? ?? ??, ????? ?? ??
  69. //lpush/lpushx? rpush/rpushx? ???? ???? ??? ????? ????. ?? ?? 'x'? ?? ???? ????? ?????.
  70. $redis->rpush('fooList', ' bar1') //??? ??? ?????. 1
  71. $redis->lpush( 'fooList', 'bar0'); //??? ??? ?????. 2
  72. $redis->rpushx(' fooList', 'bar2') //3? ?????. rpushx? ?? ????? ?????. ??? ??? 0? ?????.
  73. //llen? ?? ?? ??? ?????.
  74. $redis->llen('fooList') ;//3
  75. //lrange? ???? ?? ??? ?????
  76. $redis->lrange('fooList',0,1); //0~1?? ??? ???? ??? ?????. ? 2?? ??
  77. $redis->lrange('fooList',0, -1);//0?? ??? ? ?? ??? ???? ?? ?? ??? ?????? ?? ?????. redis?? ?? ??? ????, ??? ?????.
  78. //lindex? ?? ??? ?? ??? ?????. ??? ??? ??
  79. $redis->lindex('fooList',1); //'bar1'? ?????
  80. //lset? ???? ??? ??? ?? ?? ?????
  81. $ redis->lset('fooList',1,'123');//?? 1? ??? ???? true? ?????
  82. //lrem ???? ???? ??? ?? ??? ?????
  83. $redis->lrem('fooList',1,'_'); //?(?? ??)? ???? '_' ?? 1?? ?????(????? -1 ??).
  84. //lpop/rpop? ?? ??? ??? ?? ?? ?? ?? ??? ??? ?(? ??)???.
  85. $redis->lpop('fooList') //' bar0'
  86. $redis-> rpop('fooList'); //'bar2'
  87. //ltrim ??? ??, ???? ? ?? ?? ??, ??? ??
  88. $redis-> ,1); //???? 0???? ? ?? ?? ??
  89. //rpoplpush ? ???? ??? ??? ?? ???? ??
  90. $ redis->rpush('list1','ab0 ');
  91. $redis->rpush('list1','ab1');
  92. $redis->rpush('list2','ab2 ');
  93. $redis->rpush ('list2','ab3');
  94. $redis->rpoplpush('list1','list2');//?? list1 =>array('ab0'),list2 =>array('ab1','ab2','ab3')
  95. $redis->rpoplpush('list2','list2');//?? ??? ???? ???? ??? ??? ??? ?????. list2 =>array('ab3','ab1','ab2 ' )
  96. //linsert? ??? ??? ??? ?? ??? ?? ??? ?????.
  97. $redis->linsert('list2', 'before','ab1','123') ; / /'ab1' ?? ?? '123'? ???? ?????.
  98. $redis->linsert('list2', 'after','ab1','456') //'ab1' ?? ?? '? ???? ?????. 456'
  99. //blpop/brpop? ?? ?? ?? ?? ??? ???? ??? ?? ?? ?? ?? ?? ??? ??? ??????(? ??? PHP ???? ?? ????? ? ? ????)
  100. / / brpoplpush? ??? ???? ???? ??? rpoplpush
  101. $redis->blpop('list3',10); //list3? ?? ??? ? ?? ??? ?? ??? ?????. ?? ?? ????. 10? ? ?? ??
  102. /**
  103. ??? ?? ??
  104. */
  105. //sadd? ??? ????, true? ????, false? ????? ?????.
  106. $redis->sadd ('set1' ,'ab');
  107. $redis->sadd('set1','cd');
  108. $redis->sadd('set1','ef');
  109. //srem? ??? ??? ?????.
  110. $redis->srem('set1','cd') //'cd' ??? ?????.
  111. //spop? ? ?? ??
  112. $redis ->spop('set1');
  113. //smove? ?? ?? ???? ??? ??? ?? ?? ???? ?????
  114. $redis->sadd(' set2','123');
  115. $redis->smove('set1','set2','ab');//'set1'? 'ab'? 'set2'? ???? true ?? false? ?????.
  116. / /scard? ?? ?? ???? ?? ?? ?????.
  117. $redis->scard('set2');//2
  118. //sismember? ??? ???? ??? ?????. ?? ???? ??
  119. $redis-> sismember('set2','123'); //true ?? false
  120. //smembers? ?? ???? ?? ??? ???????
  121. $redis ->smembers('set2'); //array( '123','ab');
  122. //sinter/sunion/sdiff ? ???? ?? ??? ???/???/??? ?????.
  123. $redis->sadd('set1', 'ab');
  124. $redis->sinter('set2','set1') //?? ??('ab')
  125. //sinterstore/sunionstore/sdiffstore ? ??? ?? ???/???/?? ??? ? ?? ???? ??
  126. $redis->set('foo',0);
  127. $redis-> ;sinterstore('foo','set1') ; //'set1'? ??? 'foo'? ???? 'foo'? ?? ???? ???? ?? ????
  128. $redis->sinterstore('foo ',array('set1',' set2')); //'set1'? 'set2'? ??? ??? 'foo' ???? ???? 'foo'? ?? ??? ?????
  129. / /srandmember? ???? ?? ??? ?????.
  130. $redis->srandmember('set1');
  131. /**
  132. ??? ?? ??? ??
  133. */
  134. //sadd? ??? ???? ?? ??? ????, true? ????, ???? false? ?????.
  135. $redis->zadd('zset1',1,'ab');
  136. $redis->zadd('zset1',2,' cd');
  137. $redis-> zadd('zset1',3,'ef');
  138. //zincrby? ??? ??? ??? ?? ???? ??? ??? ?????. elements
  139. $redis->zincrby('zset1',10 ,'ab');//Return 11
  140. //zrem? ??? ??? ?????
  141. $redis->zrem(' zset1','ef'); //true ?? false
  142. //zrange? ???? ??? ??? ?? ??? ?? ??? ?????.
  143. $redis->zrange('zset1',0 ,1); //?? 0? 1(2) ??? ??? ?????.
  144. $redis->zrange('zset1',0,-1);//?? 0? ? ?? ?? ??? ??? ?????. ??? (?? ??? ??)
  145. //zrevrange ?? ??, ???? ??? ??? ?? ??? ???? ??
  146. $redis->zrevrange('zset1',0 ,-1); //?? ??? zrange? ?????
  147. //zrangebyscore /zrevrangebyscore? ???? ??? ??? ??? ?? ??? ??/?????? ?????
  148. $redis-> zadd('zset1',3,'ef');
  149. $redis->zadd('zset1',5 ,'gh');
  150. $redis->zrangebyscore('zset1',2, 9); //??? ? 2~9 ??? ?? array('ef','gh')
  151. ?? //???? ??
  152. $redis->zrangebyscore('zset1',2,9, 'withscores'); //??? ? 2-9 ??? ??? ???? ??? ?? ?????. array(array('ef' ,3),array('gh',5))
  153. $redis-> zrangebyscore('zset1',2,9,array('withscores' =>true,'limit'=>array(1 , 2))) //??? ? 2-9 ??? ?? ??, 'withscores ' =>true? ??? ?? ????? ?????. 'limit'=>array(1, 2)? ?? 2? ??? ????? ?????. ??? array(array('ef',3),array('gh'???. ,5))
  154. //zunionstore/zinterstore ?? ???? ???/???? ?? ???? ??
  155. $redis->zunionstore('zset3',array('zset1','zset2', 'zset0')); //'zset1','zset2','zset0'? ???? 'zset3'? ??
  156. //?? ????
  157. $redis->zunionstore('zset3',array( 'zset1','zset2'),array('weights' => array(5,0)));/ /weights ????? ???? ?????. ?, ??? ? 5?? ? ?? ?? ??? ??? ?????. ??, 0?? ? ??? ????? ??? ?????.
  158. $redis->zunionstore('zset3',array('zset1','zset2') ,array('aggregate' => 'max'));/ /'aggregate' => 'max' ?? 'min'? ??? ? ??? ??? ? ?? ???? ?? ?? ???? ?????.
  159. //zcount? ??? ??? ?? ?? ?????
  160. $redis->zcount('zset1',3,5);//2
  161. $redis->zcount('zset1',' (3',5)) //'(3'? ??? ?????. ??? ?? 3-5 ????? 3? ???? ????. ????? '(5'? ???? ??? 5??? 5? ???? ??? ??? ?? ????.
  162. //zcard? ??? ?????. elements
  163. $redis->zcard('zset1');//4
  164. //zscore? ??? ???? ?????
  165. $redis->zscore('zset1','ef');//3
  166. //zremrangebyscore? ??? ??? ??? ?????
  167. $redis->zremrangebyscore('zset1',0, 2); //0-2('ab', 'cd') ??? ???? ?? ??? ????, ??? ??? ?? ?????. 2
  168. //zrank/zrevrank? ???? ??/????? ?????. ??? ?? ?? ??(??? ??)
  169. $redis->zrank('zset1','ef');//? ?? ????? 0? ?????. zrevrank? 1(??? ??)? ?????. >
  170. //zremrangebyrank? ???? ??? ?? ??? ?? ??? ?????
  171. $redis->zremrangebyrank('zset1',0,10) //?? 0-10? ??? ???? ??? ?????. ??? ?? 2
  172. /**
  173. ?? ??? ??
  174. */
  175. //hset/hget ?? ??? ??? ???
  176. $redis->hset('hash1','key1', 'v1'); //'key1' ?? 'v1' ?? ?? ??? hash1 ???? ??
  177. $redis->hset('hash1','key2','v2');
  178. $redis ->hget('hash1','key1'); //'hash1' ????? 'key1' ?? ?? ???? 'v1'? ?????.
  179. //hexists? ??? ??? ?? ?????. table
  180. $redis->hexists ('hash1','key1'); //true ?? false
  181. //hdel ?? ????? ??? ?? ??? ?????
  182. $redis-> ;hdel('hash1','key2'); //true ?? false
  183. //hlen? ?? ??? ?? ?? ?????
  184. $redis->hlen('hash1 '); //1
  185. //hsetnx? ??? ????? ??? ?? ????.
  186. $redis->hsetnx('hash1','key1','v2') //false
  187. $redis-> hsetnx('hash1','key2','v2'); //true
  188. //hmset/hmget? ?? ???? ?? ?? ??? ??????
  189. $redis-> ;hmset('hash1' ,array('key3'=>'v3','key4'=>'v4'));
  190. $redis->hmget('hash1',array('key3' ,'key4')) ; //?? ?? ????? array('v3','v4')
  191. //hincrby? ??? ?? ?????
  192. $redis->hincrby('hash1', 'key5',3 ); //3? ??
  193. $redis->hincrby('hash1','key5',10); //13? ??
  194. //hkeys ?? ???
  195. $redis->hkeys('hash1'); //return array('key1','key2','key3','key4','key5')
  196. // hvals? ?? ???? ?????. ?? ?
  197. $redis->hvals('hash1') //return array('v1','v2','v3','v4',13)
  198. //hgetall ?? ?? ??? ??? ?????
  199. $redis->hgetall('hash1') //return array('key1'=>'v1','key2'=>'v2' ,'key3'=> ;'v3','key4'=>'v4','key5'=>13)
  200. /**
  201. ?? ??
  202. */
  203. / /sort sort
  204. $redis->rpush('tab',3);
  205. $redis->rpush('tab',2);
  206. $redis->rpush('tab' ,17);
  207. $redis->sort('tab'); //??(2,3,17) ??
  208. //???? ?? array('sort' => 'desc', 'limit'? ???? ??? ? ???? => array(1, 2))
  209. $redis->sort('tab',array('sort' => 'desc')); ????, return array(17,3, 2)
  210. $redis->sort('tab',array('limit' => array(1, 2))) //1? 2? ?? ?? ??? ??(??? 2? ??? ?? ??? ???)?? array(3,17)
  211. $redis->sort('tab',array('limit' => array('alpha' =)? ?????. > true))); // ? ?? ??? ???? ???? ??(17,2,3)? ?????. 17? ? ?? ??? '1'??? ? ?? ???
  212. $redis->sort???. ('tab',array('limit' => ; array('store' => 'ordered')))) //?? ??? ???? ?? ?? ?????
  213. $redis->sort(' tab',array('limit' => array ('get' => 'pre_*'))); //????? ?? '*'? ??? ????? ? ?????. ?, 'pre_? ???? ??? ??????. '? ?????.
  214. /**
  215. Redis ?? ??
  216. */
  217. //select? ??? ??????? ?????.
  218. $redis->select('mydb') //specify mydb, ???? ??? ??
  219. //flushdb ?? ????? ???
  220. $redis->flushdb();
  221. //move? ?? ?????? ??? ?????. ?? ??????
  222. $redis->set('foo', 'bar');
  223. $redis->move('foo', 'mydb2') //'mydb2' ?????? ???? ??
  224. //info? ??? ?? ??? ?????
  225. $redis->info( ; redis->slaveof(); //???? ?? ???
  226. //?? ??? ?? ????? ????
  227. $redis->save();
  228. //?? ???? ???? ?????? ??
  229. $redis->bgsave();
  230. //??
  231. $redis ->bgrewriteaof();
  232. //???? ????? ????? ??? ?????
  233. $redis-> lastsave();
  234. //?? ?-? ??/????
  235. $mkv = array(
  236. 'usr:0001' => '? ?? ???',
  237. 'usr: 0002' => '? ?? ???',
  238. 'usr:0003' => '? ?? ???'
  239. );
  240. $redis->mset($mkv); //?? ?? ?? ? ??
  241. $retval = $redis->mget(array_keys($mkv)); ?? ?? ???? ?
  242. print_r($retval);
  243. //?? ??
  244. $replies = $redis->pipeline(function($pipe) {
  245. $pipe-> ;ping();
  246. $pipe->flushdb();
  247. $pipe- >incrby('counter', 10) //?? ??
  248. $pipe->incrby('counter ', 30);
  249. $pipe->exists('counter');
  250. $pipe->get('counter');
  251. $pipe->mget('does_not_exist', ' ???');
  252. });
  253. print_r($replies);
  254. //CAS,???操?
  255. function zpop($client, $zsetKey) {
  256. $element = null;
  257. $options = array(
  258. 'cas' => true, // CAS ?? ???? ???
  259. 'watch' => $zsetKey, // ?? ??? ???? ?? ???? ?? ?
  260. 'retry' => 3, // ??? ????? ?? ??? ??,
  261. // ?????? ??? ??? ?.
  262. );
  263. $txReply = $client- >multiExec($options, function($tx)
  264. use ($zsetKey, &$element) {
  265. @list($element) = $tx->zrange($zsetKey, 0, 0);
  266. if (isset($element)) {
  267. $tx->multi(); // CAS? ???? MULTI? ????? ????? ???.
  268. $tx->zrem($zsetKey, $element);
  269. }
  270. });
  271. return $element;
  272. }
  273. $zpopped = zpop($redis, 'zset');
  274. echo isset($zpopped) ? "ZPOPed $zpopped": "ZPOP? ?? ?? ????!", "n";
  275. //對存取的key加前綴,如: 'nrk:'
  276. $redis->getProfile() ->setPreprocessor(new KeyPrefixPreprocessor('nrk:'));
  277. //分布式存儲? ?些??
  278. $multiple_servers = array(
  279. array(
  280. 'host' => ; '127.0.0.1',
  281. '??' => 6379,
  282. '??????' => 15,
  283. '??' => array(
  284. '???' => '127.0.0.1',
  285. '??' => 6380,
  286. '??????' => 15,
  287. '??' => '? ',
  288. ),
  289. );
  290. predistributionIDistributionStrategy ??;
  291. NaiveDistributionStrategy ???? IDistributionStrategy {
  292. private $_nodes, $_nodesCount;
  293. ?? ??? ?????. __constructor() {
  294. $this->_nodes = array();
  295. $this->_nodesCount = 0;
  296. }
  297. ?? ?? add($node, $weight = null) {
  298. $this->_nodes[] = $node;
  299. $this->_nodesCount ;
  300. }
  301. ?? ?? ??($node) {
  302. $ this->_nodes = array_filter($this->_nodes, function($n) use($node) {
  303. return $n !== $node;
  304. });
  305. $this- >_nodesCount = count($this->_nodes);
  306. }
  307. ?? ?? get($key) {
  308. $count = $this->_nodesCount;
  309. if ( $count === 0) {
  310. throw new RuntimeException('?? ??');
  311. }
  312. return $this->_nodes[$count > 1? abs(crc32($key) % $count) : 0];
  313. }
  314. ?? ?? generateKey($value) {
  315. return crc32($value);
  316. }
  317. }
  318. //配置鍵分布策略
  319. $options = array(
  320. 'key_distribution' => new NaiveDistributionStrategy(),
  321. );
  322. $redis = new PredisClient($multiple_servers, $options);
  323. for ($i = 0; $i set("key:$i", str_pad($i, 4, '0', 0));
  324. $redis->get("key:$i");
  325. }
  326. $server1 = $redis->getClientFor('first')->info();
  327. $server2 = $redis->getClientFor('second')->info();
  328. printf("?? '%s'?? %d?? ?? ?? ?? '%s'?? %d?? ?? ????. n",
  329. '? ??', $server1['db15']['keys'], '? ??', $server2['db15']['keys']
  330. );
???碼

??題由 小貝 于 2015-11-12 08:43 移動
? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
PHP ?? ??? ??????? PHP ?? ??? ??????? Jul 17, 2025 am 04:16 AM

PHP ?? ??? ?? ???? ?? ? ????? ??? ?????. 1. ?? ??? ??? ??? ??? ? ? ??? ??? ??? ?? ?? ??? ???? ???????. 2. ?? ??? ???? ???? ? ?? ????? ?? ?? ?? ??? ?????. 3. $ _get ? $ _post? ?? Hyperglobal ??? ?? ???? ?? ??? ? ??? ??? ??????? ???????. 4. ?? ?? ?? ???? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ??? ???????. ??? ??? ????? ??? ??? ?? ???? ????? ? ??? ? ? ????.

PHP?? ?? ???? ???? ???? ??? ?????? PHP?? ?? ???? ???? ???? ??? ?????? Jul 08, 2025 am 02:37 AM

PHP ?? ???? ???? ????? ?? ? ??? ???? ?? ?? ? ??? ???? ?? ??? ?????? ??? ??? ? ? ???????. 1. ??? ?? CSRF? ???? ?? ??? ??? ???? ?????? ??? ???? FINFO_FILE? ?? ?? MIME ??? ?????. 2. ??? ??? ??? ???? ??? ?? ??? ?? ? WEB ????? ??? ???? ??????. 3. PHP ?? ??? ?? ? ?? ???? NGINX/APACHE? ??? ????? ?? ???? ?????. 4. GD ?????? ??? ? ?? ???? ??? ?? ??? ?? ????.

PHP?? ?? ?? PHP?? ?? ?? Jul 18, 2025 am 04:57 AM

PHP ?? ???? ? ?? ???? ??? ????. 1. // ?? #? ???? ? ?? ??? ???? // ???? ?? ????. 2. ?? /.../ ?? ?? ?? ??? ????? ?? ? ?? ??? ?? ? ? ????. 3. ?? ?? ?? / if () {} /? ?? ?? ??? ????? ??? ?? ?? ?? ??? ???? ????? ???? ??? ?? ???? ???? ??? ? ??? ??????.

PHP ?? ?? ? PHP ?? ?? ? Jul 18, 2025 am 04:51 AM

PHP ??? ???? ??? ??? ??? ????? ????. ??? ????? ?? ???? ??? "?? ? ?"??? "?"? ???????. 1. ??? ? ??? ??? DocBlock (/*/)? ?? ?? ??? ???? ??? ? ?? ???? ??????. 2. JS ??? ???? ?? ???? ??? ?? ??? ??? ?????. 3. ??? ?? ?? ?? ??? ???? ????? ????? ???? ?? ????? ???? ? ??????. 4. Todo ? Fixme? ????? ???? ? ? ??? ??? ???? ?? ?? ? ??? ???????. ??? ???? ?? ??? ??? ?? ?? ?? ???? ???? ? ????.

PHP?? ???? ??? ?????? PHP?? ???? ??? ?????? Jul 11, 2025 am 03:12 AM

Ageneratorinphpisamemory- ???? Way-Erate-Overgedatasetsetsbaluesoneatimeatimeatimeatimallatonce.1.generatorsuseTheyieldKeywordTocroadtOpvaluesondemand, RetingMemoryUsage.2

?? PHP : ??? ??? ?? PHP : ??? ??? Jul 18, 2025 am 04:54 AM

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled

PHP?? ??? ? ???? ??? ????? ?? PHP?? ??? ? ???? ??? ????? ?? Jul 12, 2025 am 03:15 AM

PHP??? ???? ??? ?? ?? ????? ???? ??? ?? ??? ??? ?? ? ??? ??? ???? ?????. ???? 0?? ???? ?? ??? ???? ? ?? ???? ?? ?? ? ? ????. MB_SUBSTR? ?? ??? ??? ???????. ? : $ str = "hello"; echo $ str [0]; ?? H; ??? MB_SUBSTR ($ str, 1,1)? ?? ??? ??? ??? ??????. ?? ???????? ???? ??? ???? ?? ???? ?? ?? ???? ?????? ??? ????? ?? ??? ?? ??? ???? ???? ?? ????.

?? PHP ?? ??? ?? PHP ?? ??? Jul 18, 2025 am 04:52 AM

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. ??, downloadandinstallxAmpp, selectComponents, startApache ? placefilesinhtdocs.2

See all articles