PHP一些好玩但是让你涨知识的题(收藏篇)

Php (58) 2023-10-05 19:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说PHP一些好玩但是让你涨知识的题(收藏篇),希望能够帮助你!!!。

1、

$A="Hello "; 
functionprint_A() 
{
 $A = "phpmysql !!";
global $A; global 全局变量 函数是独立的模块 $A外界定义的
echo $A;
}
echo $A; //Hello
print_A(); //Hello 在你将$A定义为全局变量的时候,并未修改$A的值

2、

$email = ‘langwan@thizlinux.com.cn’; 
$str = ___strstr_($email,‘@’);
$info = __explode__(‘.’,$str);
___print_r_($info);
输出结果为:
Array ([0] => @thizlinux [1]=>com[2]=>cn) 输出结果是一个数组

3、定义一个404跳转

header("Http/1.1 404 Not Found");

5、不用PHP函数实现字符串反转

Notice: Uninitialized string offset: 7 in D:\wamp\www\phpTest\test.php on line 7 //数组越界的问题
$str = 'abcdefg';
$len = strlen($str);
$return = '';
for($i=$len-1;$i>=0;$i--){
 $return.=$str{$i};
}
echo $return;

6、写出五种获取.jpg或者jpg的的方法

$dir = 'Uploads/img.upload.jpg';
substr($str,-3);
//echo substr($dir,strrpos($dir,'.'));
//echo strrchr($dir,'.');
//$arr = explode('.',$dir);
//print_r(array_pop($arr));
//$p = pathinfo($dir);
//print_r($p);
//print_r($p['extension']);
//$new_str = strrev($dir);
//echo $new_str."\n";
//$a = strrev(substr($new_str,0,strpos($new_str,'.')));
//echo $a;

7、请写一个函数,实现以下功能: 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”

function o($str){
 $arr = explode('_',$str);
 $str = '';
 foreach($arr as $v){
 $str.=ucfirst($v);
 }
 return $str;
}
echo o('make_by_id');

方法2:

function ucfirstTest($str){
 return ucfirst($str);
}
function test($str){
 $arr = explode('_',$str);
 $new_arr = array_map('ucfirstTest',$arr);
 $str = implode('',$new_arr);
 return $str;
}
$str = 'open_str';
echo test($str);

8、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)

echo date('Y-m-d H:i:s',strtotime('-1 days'));
9、mb_substr($str,1,10,'utf-8');
10、修改session的生存时间
session_set_cookie_params

11、strpos====这里要注意的就是strpos返回的是0,因为他在第0,所以要用===判断

$str = 'https://www.baidu.com';
$str1 = 'https://';
print_r(strpos($str,$str1));
if(strpos($str,$str1) !== false){
	
}

12、下面输出是什么,主要考的就是运算符的优先级和++ --的问题

$x = 5;
echo $x; 5
echo "<br />";
echo $x+++$x++; 5+6 = 11
echo "<br />";
echo $x; 11
echo "<br />";
echo $x---$x--; 7-6 = 1
echo "<br />";
echo $x; 5

13、array_merge合并的时候,传入的都是数组,如果一个不是数组就会返回null

14、$x = true and false; var_dump($x); true

15、PHP的可变变量:$a = c; $a = 10; $c = 10;

<form action="test.php" method="post">
 <input type="text" name="a" id=""/>
 <input type="text" name="b" id=""/>
 <input type="submit" value="aa"/>
</form>
foreach($_POST as $k=>$v){
 ${$k} = $v;
}
echo 'a'.isset($a)?$a:''.PHP_EOL;
echo 'b'.isset($b)?$b:''.PHP_EOL;

16、什么是自连接:无限分类就是自己链接自己查询

17、html动态生成的节点加点击事件

	$(".h3").on("click","h3",{foo:"文本:"},function(event){
    alert(event.data.foo+this.textContent);
  });

18、$url = 'http://www.test.com.cn/abc/de/fg.php?id=1'; 获取php或者.php

$b = parse_url($url); //php解析url地址,parse_str是解析字符串parse_str($str,$out)
echo "<pre>";
/**array(4) {
["scheme"]=>
 string(4) "http"
 ["host"]=>
 string(15) "www.test.com.cn"
 ["path"]=>
 string(14) "/abc/de/fg.php"
 ["query"]=>
 string(4) "id=1"
}
 */
$arr = $b['path']; ///abc/de/fg.php
echo substr($arr,strpos($arr,'.'));
$new_arr = explode('.',$arr);
echo end($new_arr);
高效
$arr = parse_url('http://www.sina.com.cn/abc/de/fg.php?id=1');
$result=pathinfo(arr['path']);var_dump($arr);
array(4) { ["dirname"]=> string(7) "/abc/de" ["basename"]=> string(6) "fg.php" ["extension"]=> string(3) "php" ["filename"]=> string(2) "fg" }
var_dump($result['extension']);

19、mkdir和is_dir的使用

$dir = './liuzhu/test/';
if(is_dir($dir)){ //如果存在就返回true
 file_put_contents($dir.'1.txt',$url);
}else{ //如果不存在就创建,true的这个参数是可以循环创建
 if(mkdir($dir,0777,true)){
 file_put_contents($dir.'1.txt',$url);
 };
}

20、定义一个字符串,然后获取第一个字符

$str = 'abcdef'; $one = $str[1] || $str{1} 这两种方式

21、下面输出no

$v = 1;
$m = 2;
$l = 3;
if( $l > $m > $v){
 echo "yes";
}else{
 echo "no";
}

首先$l>$m返回的是一个true 然后true>1 就返回了null

22、获取图片的信息

getimagesize () 获取图片的尺寸
Imagesx () 获取图片的宽度
Imagesy () 获取图片的高度
23、$_SERVER;
$host = $_SERVER['HTTP_HOST']; //localhost
$self = $_SERVER['PHP_SELF']; ///phpTest/test.php
echo $host.$self; //localhost/phpTest/test.php
echo $_SERVER['REMOTE_ADDR']; //客户端ip地址
echo $_SERVER['SERVER_ADDR']; //服务端ip地址
echo $_SERVER['REQUEST_URI']; ///phpTest/test.php

24、php.ini 中safe mod关闭 影响哪些函数和参数,至少写6个?

move_uploaded_file() exec()
system() passthru()
popen() fopen()
mkdir() rmdir()
rename() unlink()
copy() chgrp()
chown() chmod()
touch() symlink()
link() parse_ini_file()
set_time_limit() max_execution_time mail()

25、isset() 、empty()与is_null的区别

1、当变量未定义时,is_null() 和“参数本身”是不允许作为参数判断的,会报Notice警告错误;

2、empty , isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null 和 “参数本身”只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

3、isset():仅当null和未定义,返回false;

4、empty():""、0、"0"、NULL、FALSE、array(),未定义,均返回true;

5、is_null():仅判断是否为null,未定义报警告;

6、变量本身作为参数,与empty()一致,但接受未定义变量时,报警告;

26、http_build_query()

$arr = [
 'title'=>'nihao',
 'content'=>'world'
];
$str = http_build_query($arr);
var_dump($str);

27、curl file_get_contents() socket三种方式实现提交数据

28、var_dump(((bool)'all')+1); 2 true=1 1+1=2

29、如果你一个整型integer超出了范围,那么就会被转成float

30、如果你定义的了一个数组,那么当你unset这个数组的时候,你又定义了一个$a[5] 那么这个键应该是从5开始

31、如何保证你的api接口的安全性

32、这个地方考察是先用后加的问题

$a = 3;
$b = 5;
if($a == 3 || $b == 7){
 echo $a++;
 echo $b++;
}
echo $a.' '.$b;
3 5 4 6

33、count除去数组和实例化对象 其他的count()都是1 null是0

$a = count([4,5,6])+count(null)+count(false);
var_dump($a);

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复