location /zhenzhenzhufu/public/ {
if (!-e $request_filename){
rewrite ^/zhenzhenzhufu/public/(.*)$ /zhenzhenzhufu/public/index.php/$1 last;
}
}
红色部分直接换成你真实目录即可。
徐多蔚APP开发,合肥物联网项目开发,合肥网络开发,合肥项目高端定制,企业oa开发,合肥小程序开发,合肥公众号开发,合肥网络安防 – 徐多蔚 xuduowei
联系方式[微信]:徐多蔚15309695130 感恩有您的陪伴,我们用心服务每一位客户 – 徐多蔚 xuduowei
location /zhenzhenzhufu/public/ {
if (!-e $request_filename){
rewrite ^/zhenzhenzhufu/public/(.*)$ /zhenzhenzhufu/public/index.php/$1 last;
}
}
红色部分直接换成你真实目录即可。
宝塔的ThinkPHP伪静态是通过Nginx或Apache的Rewrite规则来实现的,用于将动态的URL转化为静态的URL,以提高网站的SEO优化和用户体验。
location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; break; } }
其中,/index.php是指向网站入口文件的路径,$1是指匹配到的参数。
对于Apache来说,可以在.htaccess文件中添加如下代码:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?s=$1 [QSA,PT,L]
其中,/index.php是指向网站入口文件的路径,$1是指匹配到的参数。
/**
* 循环创建文件夹
* @param string $dir 需要创建的文件夹路径
* @param integer $mode 文件夹权限
* @return bool 返回创建是否成功
*/
function makedir($dir, $mode = 0777)
{
if (is_dir($dir)) {
return true;
} else if (!is_dir(dirname($dir)) && !call_user_func(__FUNCTION__, dirname($dir), $mode)) {
return false;
}
return mkdir($dir, $mode);
}
$ip=FALSE;
//客户端IP 或 NONE
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
//多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
//客户端IP 或 (最后一个)代理服务器 IP
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
PHP获取客户端真实IP地址的方法 https://www.php.cn/php-weizijiaocheng-406174.html
$tj=" and (unix_timestamp(time1) < unix_timestamp(NOW()))";
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: ‘id’,
sortName: ‘id’,
escape:false,
columns: [
//获取到token。
var token = wx.getStorageSync('token') || '';
app.request('/addons/cms/wxapp.index/mypetsrand',
{ page: this.page, token: token }
//注意传递token过去
/**
* 随机获取数据
* @param string $num 抽取条数
* @param string $table 表名
* @param string $where 查询条件
* @return array
*/
function tt_random_data($num,$table,$where=[])
{
$pk = Db::name($table)->getPK();//获取主键
$countcus = Db::name($table)->where($where)->field($pk)->select();//查询数据
$con = '';
$qu = '';
foreach($countcus as $v=>$val){
$con.= $val[$pk].'|';
}
$array = explode("|",$con);
$countnum = count($array)-1;
for($i = 0;$i <= $num;$i++){
$sunum = mt_rand(0,$countnum);
$qu.= $array[$sunum].',';
}
$list = Db::name($table)->where($pk,'in',$qu)->limit(0,$num)->select();
return $list;
}
亲测有效。
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
1. serialize和unserialize函数
这两个是序列化和反序列化PHP中数据的常用函数。
<?php $a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); //序列化数组 $s = serialize($a); echo $s; //输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";} echo '<br /><br />'; //反序列化 $o = unserialize($s); print_r($o); //输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut ) ?>
当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。为了克服这个问题,一个巧妙的技巧是使用base64_encode和base64_decode。
$obj = array(); //序列化 $s = base64_encode(serialize($obj)); //反序列化 $original = unserialize(base64_decode($s));
但是base64编码将增加字符串的长度。为了克服这个问题,可以和gzcompress一起使用。
//定义一个用来序列化对象的函数 function my_serialize( $obj ) { return base64_encode(gzcompress(serialize($obj))); } //反序列化 function my_unserialize($txt) { return unserialize(gzuncompress(base64_decode($txt))); }
正则:$pattern = ‘/开头内容([\s\S]*)结尾内容/’;
$str=”所在地区: 瓯海区 样本区域: 白象住宅区 房屋坐落: 瓯海区南白象街道天钜澜庭7幢2304室 户室号: 2304 总建筑面积: 105.61㎡ 套内面积: 82.09㎡ 分摊面积: 23.52㎡ 类别: 住宅 设计用途: 住宅 建筑结构: 钢混 一房一价: 元 所属项目: 瓯房售许字(2020)第002号 房开公司: 温州龙悦房地产开发有限公司 户室状态: 正常发售 注意事项:”;
preg_match_all(‘/房屋坐落:([\s\S]*)户室号/’, $str, $matched);
$zuoluo=trim($matched[1][0]);//瓯海区南白象街道天钜澜庭7幢2304室