1. 1
  2. 1
  3. 1
  4. 1
  5. 1
  6. 1
  • 欢迎您
    IP、域名、DNS、host概念
    转载 2021-10-27 技术语录

    28

    IP、域名、DNS、host概念


    IP,是给每个连接在互联网上的主机分配的一个32位地址,理论上有2^32个


    域名,由于IP地址基于数字,不方便记忆,于是便用域名来代替IP地址,域名是一个IP地址的“面具”


    DNS,用于记录IP地址和域名之间映射关系的服务


    host,本地的域名IP映射


    客户端输入域名,向服务器发出请求,首先会到DNS系统进行域名解析,DNS会返回对应的IP地址给客户端,客户端再用此IP地址向服务器发出请求。

    浏览器一般都有DNS缓存,访问过一次的域名会将其IP地址缓存到浏览器中,方便下次访问。

    如果在host中配了域名到ip的映射,就不会走DNS,而是直接走host。本地优先级最高。

    ————————————————

    原文链接:https://blog.csdn.net/u014158869/article/details/87742681


  • 欢迎您
    ECSHOP报错的问题
    sxy 2021-06-16 技术语录

    121

    ECShop出现Strict Standards: Only variables should be passed by reference in的解决方法

    解决办法:

    打开cls_template.php文件中发现下面这段代码:

    $tag_sel = array_shift(explode(' ', $tag));

    修改为

    $tagArr = explode(' ', $tag);
    $tag_sel = array_shift($tagArr);

    这样之后顶部的报错没掉了,左侧和底部的报错还需要去ecshop的后台点击清除缓存才能去除。

    下面我们遇到这段代码,在php5.3以上版本,也会报错误。

    $file_suffix = strtolower(array_pop(explode('.', $file_name)));

    修改方法:

    $fnarray=explode('.', $file_name);
    $file_suffix = strtolower(array_pop($fnarray));

    ECSHOP完美解决Deprecated: preg_replace()报错的问题

    2)、解决办法:

    代码:

    return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);

    修改为:

    return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);


  • 欢迎您
    phpstorm使用
    张楚岚 2021-02-26 技术语录

    153

    最近使用了PHPstorm编辑器,所以在这里总结一下:

    一、编辑器汉化:

    1、点击File

    image.png

    2、点击setting,打开设置

    image.png

    3、搜索框搜索chinese关键字,查找中文汉化插件

    image.png

    4、安装完成后重启phpstorm

    image.png

    5、提示restart重启点击

    image.png

    6、成功

    image.png

  • 欢迎您
    花生壳代理(PHP)无法获取用户ip
    转载 2021-02-01 技术语录

    191

    1、问题描述

    因为需要,所以用花生壳搭建了一个网站,但是获取到的都是本机地址(其它电脑访问网站得到的也是127.0.0.1),

    很正常,毕竟不是云主机。但让人气愤的是花生壳官方没有给出解决方案,无语。

    <?php echo $_SERVER["REMOTE_ADDR"];?>


    //输出127.0.0.1

    2、解决办法

    1)通过搜狐获取用户ip

    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
    <script type="text/javascript">  
        alert(returnCitySN["cip"]);
    </script>


    网站返回的是json格式的数据,如下

     

     2)再用ajax传递给后端(我这里是拍php)

    前端这样子

    <script>
    $.ajax({url: "php路径",type: "post",data: {ip: returnCitySN["cip"]},success: function(){alert("终于可行了!");}});
    </script>


    后端这样子

    $ip = $_POST['ip'];//留着$_SERVER吧,万一有用呢
    $ip = isset($ip) ? $ip : $_SERVER["REMOTE_ADDR;"];
    
    
    转载链接:https://blog.csdn.net/qq_45492912/article/details/106910635










  • 欢迎您
    php 链接转二维码图片
    转载 2020-12-24 技术语录

    158

    // 类库下载地址   
    $value = ' 
     $errorCorrectionLevel = 'L';//容错级别 
     $matrixPointSize = 20;//生成图片大小 
     $QR = 'code.png'; //生成的原始二维码图名
    
        if(!file_exists($QR)){
            images($value,$QR, $errorCorrectionLevel, $matrixPointSize);
        }else{         echo '图片已经有了';
         }function images($value,$QR, $errorCorrectionLevel, $matrixPointSize){    // 加载类库
        include './phpqrcode/phpqrcode.php'; 
        //生成二维码图片 后面三个参数可选
        QRcode::png($value, $QR, $errorCorrectionLevel, $matrixPointSize, 2); 
        $logo = '1.jpg';//准备好的logo图片 
         
         // 下面是在二维码中放logo
        if ($logo !== FALSE) { 
            // 操作GD库
             $QR = imagecreatefromstring(file_get_contents($QR)); 
             $logo = imagecreatefromstring(file_get_contents($logo)); 
             $QR_width = imagesx($QR);//二维码图片宽度 
             $QR_height = imagesy($QR);//二维码图片高度 
             $logo_width = imagesx($logo);//logo图片宽度 
             $logo_height = imagesy($logo);//logo图片高度 
             $logo_qr_width = $QR_width / 5; 
             $scale = $logo_width/$logo_qr_width; 
             $logo_qr_height = $logo_height/$scale; 
             $from_width = ($QR_width - $logo_qr_width) / 2; 
             //重新组合图片并调整大小 
             imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, 
             $logo_qr_height, $logo_width, $logo_height); 
        } 
        //输出图片 图片名为code2.jpg
        Header("Content-type: image/png");
        ImagePng($QR,'code_2.jpg');
    }// 如果要解析二维码,你要下载php-zbarcode类库
    
    两个图片合成
    function opentow(){
            $Absolute_Path=substr($_SERVER['SCRIPT_FILENAME'],0,-10);
            //本地的绝对路径
            $dst_path = '4.png';//背景图  
            $src_path= 'code.png'; //头像
            $hz = substr(strrchr($dst_path, '.'), 1);
            $path = $Absolute_Path.'/images/';
            //生成新图片名
            $image = $path.date("YmdHis").rand(1000,9999).".".$hz;
            //创建图片的实例
            $dst = imagecreatefromstring(file_get_contents($dst_path));
            $src = imagecreatefromstring(file_get_contents($src_path));
            //获取水印图片的宽高
            $src_w =80;$src_h=10;
            list($src_w,$src_h) = getimagesize($src_path);
            //如果水印图片本身带透明色,则使用imagecopy方法
            imagecopy($dst, $src, 60,180, 0, 0, $src_w, $src_h);
            //输出图片
            list($src_w, $src_h, $dst_type) = getimagesize($dst_path);
            switch ($dst_type) {
                case 1://GIF
                    imagegif($dst, $image);
                    break;
                case 2://JPG
                    imagejpeg($dst, $image);
                    break;
                case 3://PNG
                //header('Content-Type: image/png');
                    imagepng($dst, $image);
                    break;
                default:
                    break;
            }
            return $image;
        }
    //生成二维码
    $value = 'www.baidu.com';//二维码内容 
    $errorCorrectionLevel = 'L';//容错级别 
    $matrixPointSize = 8;//生成图片大小 
    $QR = 'code.png'; //生成的原始二维码图名
    
        if(!file_exists($QR)){
            images($value,$QR, $errorCorrectionLevel, $matrixPointSize);
        }else{
             echo '图片已经有了';
         }
    
    function images($value,$QR, $errorCorrectionLevel, $matrixPointSize){
        // 加载类库
        include './phpqrcode/phpqrcode.php'; 
        //生成二维码图片 后面三个参数可选
        QRcode::png($value, $QR, $errorCorrectionLevel, $matrixPointSize, 2); 
    
    }


  • 欢迎您
    mysql语句将日期转换为时间戳的方法
    转载 2020-12-11 技术语录

    189

    mysql将日期转换为时间戳更新数据库:

    update test set creattime=UNIX_TIMESTAMP('2018-04-19') 

     

    替换字段为当前日期:

    update test set addtime=UNIX_TIMESTAMP(NOW()) where id=1

     

    对应的日期函数还可以是以下类型,语句中做相应替换就行:

    NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
    CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
    CURTIME()以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。

    DATE_FORMAT(CREATED_TIME,'%Y-%m-%d %H:%i:%S') CREATED_TIME,页面展示列表时间要DATE_FORMAT转一下(年月日时分秒),

    DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') CREATED_TIME,页面展示列表时间要DATE_FORMAT转一下(年月日)


  • 欢迎您
    move_uploaded_file上传失败及中文乱码解决办法
    转载 2020-11-19 技术语录

    196

    Warning: move_uploaded_file(Discuz X3.2插入新用户.docx) [function.move-uploaded-file]: failed to open stream: Invalid argument in E:\ESSamp\wwwroot\1.php on line 18

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'E:\ESSamp\PHP5\uploadtemp\php3CE6.tmp' to 'Discuz X3.2插入新用户.docx' in E:\ESSamp\wwwroot\1.phpon line 18


    先本着解决乱码的问题,没想到这个错误也一起解决了,主要是通过iconv()函数进行编码转换,方法如下:


    $_FILES["names"]['name']=iconv("UTF-8","gb2312", $_FILES["names"]['name']);

    move_uploaded_file($_FILES["names"]['tmp_name'],$_FILES["names"]['name']);

    $name=iconv("gb2312","UTF-8", $_FILES["names"]['name']);

    就这样问题解决了。


  • 欢迎您
    linux+apache+ssl配置https
    转载 2020-11-18 技术语录

    172

    最近做小程序需要域名配置https,然后去搜索各种安装方法,经过一天折腾总算是配置好了,网上的方法很多不搭边,在这里总结下,避免踩坑。

    第一步:先看下服务器上有没有ssl模块,在apache的modules目录,里面有很多.so后缀的文件就是了,如果有mod_ssl.so文件代表已经安装了。如果没有,需要cd 进入modules目录,然后下载mod_ssl.so,执行命令 yum install -y mod_ssl  //下载ssl

    第二步:下载证书文件传到服务器上,放哪里没关系,我是新建一个cert文件夹,然后放到里面  /httpd/cert/

    第三步:修改或添加httpd-ssl.conf(提示先备份),一般在/httpd/conf/extra/httpd-ssl.conf,根据操作系统的不同, http-ssl.conf文件也可能存放在conf.d/ssl.conf目录中。

    如果都没有,那就新建一个,内容为:

    <VirtualHost 0.0.0.0:443>
       DocumentRoot "/htdocs/"  #替换为你的网站根目录
       ServerName jiandanji.fun #替换为你的域名
       SSLEngine on
       SSLCertificateFile /etc/httpd/cert/2594646_jiandanji.fun_public.crt #替换成你的证书文件路径
       SSLCertificateKeyFile /etc/httpd/cert/2594646_jiandanji.fun.key #替换成你的密钥文件路径
       SSLCertificateChainFile /etc/httpd/cert/2594646_jiandanji.fun_chain.crt #替换成你的证书密钥文件路径
    </VirtualHost>

    本地编辑好,然后保存上传

    第四步:找到apache配置文件httpd.conf(提示先备份),开启或添加以下配置:

    LoadModule ssl_module modules/mod_ssl.so

    Include /etc/httpd/conf/extra/httpd-ssl.conf

    如果前面有#号,将#去掉,没有就添加这两句

    到这里就配置好了

    重启服务:

    service httpd restart


  • 姓名:孙小宇
  • 职业:PHP开发
  • 邮箱:yntx420@163.com
  • 定位:河北 · 张家口
       
  •   总访问量:6.05w+
  •   累计访问量:3.33w+
  •