你不use直接new一个class,提示找不到class
namespace就是给名称相同的class取个绰号。
use \eryima\JJ;
use \ershen\JJ;
namespace \eryima
class JJ {}
namespace \ershen
class JJ {}
感谢七哥解惑
我站在青青的牧场
你不use直接new一个class,提示找不到class
namespace就是给名称相同的class取个绰号。
use \eryima\JJ;
use \ershen\JJ;
namespace \eryima
class JJ {}
namespace \ershen
class JJ {}
感谢七哥解惑
代码如下
define('COOKIES_PATH', '/');
define('COOKIES_EXPIRES',gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",time()+9600));
header("Set-Cookie:user[userid]=123;path =".COOKIES_PATH.";httpOnly;SameSite=Strict;expires=".COOKIES_EXPIRES.";",false);
header("Set-Cookie:user[username]=123;path =".COOKIES_PATH.";httpOnly;SameSite=Strict;expires=".COOKIES_EXPIRES.";",false);
header("Set-Cookie:user[password]=123;path =".COOKIES_PATH.";httpOnly;SameSite=Strict;expires=".COOKIES_EXPIRES.";",false);
header("Set-Cookie:admin[username]='';path =".COOKIES_PATH.";expires=".gmdate('D, d M Y H:i:s GMT', time()-1).";",false);
header("Set-Cookie:admin[password]='';path =".COOKIES_PATH.";expires=".gmdate('D, d M Y H:i:s GMT', time()-1).";",false);
可以通过设置httpOnly;和SameSite=Strict;对cookie进行禁止JS读取和禁止跨域读取.达到基础性的XSS和CSRF防护.
来源于网络
PHP版内容自动创建索引目录的代码,可以自动把内容中的<h2><h3>标签中的内容作为索引目录,创建内容页中的小导航菜单.
关于css的代码,可以自行处理.
function create_con_menu($content) {
$matches = array();
$ul_li = '';
//匹配出h2、h3标题
$rh = "/<h[23]>(.*?)</h[23]>/im";
$h2_num = 0;
$h3_num = 0;
//判断是否是文章页
if(is_single()){
if(preg_match_all($rh, $content, $matches)) {
// 找到匹配的结果
foreach($matches[1] as $num => $title) {
$hx = substr($matches[0][$num], 0, 3); //前缀,判断是h2还是h3
$start = stripos($content, $matches[0][$num]); //匹配每个标题字符串的起始位置
$end = strlen($matches[0][$num]); //匹配每个标题字符串的结束位置
if($hx == "<h2"){
$h2_num += 1; //记录h2的序列,此效果请查看百度百科中的序号,如1.1、1.2中的第一位数
$h3_num = 0;
// 文章标题添加id,便于目录导航的点击定位
$content = substr_replace($content, '<h2 id="h2-'.$num.'">'.$title.'</h2>',$start,$end);
$title = preg_replace('/<.+?>/', "", $title); //将h2里面的a链接或者其他标签去除,留下文字
$ul_li .= '<li class="h2_nav"><a href="#h2-'.$num.'" class="tooltip" title="'.$title.'">'.$title."</a><i class="post_nav_dot"></i></li>n";
}else if($hx == "<h3"){
$h3_num += 1; //记录h3的序列,此熬过请查看百度百科中的序号,如1.1、1.2中的第二位数
$content = substr_replace($content, '<h3 id="h3-'.$num.'">'.$title.'</h3>',$start,$end);
$title = preg_replace('/<.+?>/', "", $title); //将h3里面的a链接或者其他标签去除,留下文字
$ul_li .= '<li class="h3_nav"><a href="#h3-'.$num.'" class="tooltip" title="'.$title.'">'.$title."</a><i class="post_nav_dot"></i></li>n";
}
}
}
// 将目录拼接到文章
$content = "<div class="post_nav"><ul class="post_nav_content">n" . $ul_li . "</ul></div>n".$content;
return $content;
}
}
php 判断字符串是英文还是汉字还是英汉混合
/*
* 判断给定字符串是
* 纯英文:ENGLISH
* 纯汉字:CHINESE
* 英汉混合:MIXTURE
*/
private function EnglishOrChinese($str){
$mb = mb_strlen($str,'utf-8');
$st = strlen($str);
if($st==$mb)
return ENGLISH; //'纯英文';
if($st%$mb==0 && $st%3==0){
return CHINESE; //'纯汉字';
}
else{
return MIXTURE; //'汉英混合';
}
}
需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保
“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题。
参考
https://blog.csdn.net/carrousel0516/article/details/90229209
https://www.cnblogs.com/ryanzheng/p/8285113.html
PHP字符串出现次数,字符串包含
可以通过字符串出现次数大于1,来判断字符串包含
function check_str($str, $substr)
{//子字符串$substr在字符串$str中出现一次,表示包含
$nums=substr_count($str,$substr);
if ($nums>=1)
{
return true;
}
else
{
return false;
}
}
在用jtbc做站时,遇到一个定义常量,无法获取到值,经过排查,得知,define() 函数未设置case_insensitive参数时,默认是区分大小写的。
定义和用法
define() 函数定义一个常量。
常量类似变量,不同之处在于:
在设定以后,常量的值无法更改
常量名不需要开头的美元符号 ($)
作用域不影响对常量的访问
常量值只能是字符串或数字
语法
define(name,value,case_insensitive)
参数 描述
name 必需。规定常量的名称。
value 必需。规定常量的值。
case_insensitive
可选。规定常量的名称是否对大小写敏感。
若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。
例子
例子 1
定义一个大小写敏感的常量:
<?php
define("GREETING","Hello world!");
echo constant("GREETING");
?>
输出:
Hello world!
例子 2
定义一个大小写不敏感的常量:
<?php
define("GREETING","Hello world!",TRUE);
echo constant("greeting");
?>
输出:
Hello world!
PHP记录访客IP代码
代码如下:
< ? $file = "ip.txt";//保存的文件名 $ip = $_SERVER['REMOTE_ADDR']; $handle = fopen($file, 'a'); fwrite($handle, "IP Address: "); fwrite($handle, "$ip"); fwrite($handle, "n"); fclose($handle); ?>
用法:用include包含在首页,然后就可以记录了
这种方法类似JS调用,都受到空间和网速的影响,用于小型网站还是可以满足需求的.