预览模式: 普通 | 列表

Godaddy虚拟主机最新优惠码 私密日志

PHP拆分url并提取域名、方法、参数

 拆分URL的一个很重要的函数就是parse_url();

它可以将一个url地址拆分为一个一维数组
例如:
 
PHP代码
  1. $url = 'http://www.sina.com.cn/abc/de/fg.php?id=1';    
  2. $arr = parse_url($url);    
  3. print_r($arr);    
此时$arr就是一个一维数组
 
PHP代码
  1. Array    
  2. (    
  3.     [scheme] => http    
  4.     [host] => www.sina.com.cn    
  5.     [path] => /abc/de/fg.php    
  6.     [query] => id=1    
  7. )    
它的键值是固定的,如果你想取其中的一个值的时候直接就可以拿到啦
例如:
PHP代码
  1. echo $host = $arr['host'];    
这样就会输出www.sina.com.cn了

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 454

PHP将相对路径URL转换为绝对路径URL

 在采集程序或者蜘蛛程序中经常会遇到一类问题,就是将网页中相对路径形式的URL转换为绝对路径形式的URL。例如在http://www.abc.cn/blog/1/这个页面中,有一个URL链接为../index.php,那么我们要将它转换为http://www.abc.cn/blog/index.php。下面给出了解决这类问题的代码。该程序能够成功处理各种URL,将其变成绝对形式。

PHP代码
  1. <?php  
  2. $a = 'http://www.abc.com/a/index.html';  
  3. $b = '../abc/a.js';  
  4. echo format_url($b$a);  
  5.   
  6. function format_url($srcurl$baseurl) {  
  7.   $srcinfo = parse_url($srcurl);  
  8.   if(isset($srcinfo['scheme'])) {  
  9.     return $srcurl;  
  10.   }  
  11.   $baseinfo = parse_url($baseurl);  
  12.   $url = $baseinfo['scheme'].'://'.$baseinfo['host'];  
  13.   if(substr($srcinfo['path'], 0, 1) == '/') {  
  14.     $path = $srcinfo['path'];  
  15.   }else{  
  16.     $path = dirname($baseinfo['path']).'/'.$srcinfo['path'];  
  17.   }  
  18.   $rst = array();  
  19.   $path_array = explode('/'$path);  
  20.   if(!$path_array[0]) {  
  21.     $rst[] = '';  
  22.   }  
  23.   foreach ($path_array AS $key => $dir) {  
  24.     if ($dir == '..') {  
  25.       if (end($rst) == '..') {  
  26.         $rst[] = '..';  
  27.       }elseif(!array_pop($rst)) {  
  28.         $rst[] = '..';  
  29.       }  
  30.     }elseif($dir && $dir != '.') {  
  31.       $rst[] = $dir;  
  32.     }  
  33.    }  
  34.   if(!end($path_array)) {  
  35.     $rst[] = '';  
  36.   }  
  37.   $url .= implode('/'$rst);  
  38.   return str_replace('\\', '/', $url);  
  39. }  
  40. ?>  

 

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 361

 1. iconv()介绍

      iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。
      iconv函数在php5中内置,GB字符集默认打开。
 
2. iconv()错误
      iconv在转换字符”—”到gb2312时会出错,解决方法是在需要转成的编码后加 “//IGNORE”,也就是iconv函数第二个参数后。如下:
      iconv("UTF-8", "GB2312//IGNORE", $data)
      ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
 
3. iconv()例子
  例1:
  <?php
    echo $str= ‘你好,这里是卖咖啡!’;
    echo '<br />';
    echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
    echo '<br />';
    echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度
  ?>
 
  例2:
  如果你的PHP文件是UTF-8编码的,那么下面的代码就可以正确输出:
  <?php
    $str='我爱百度';
    $utf='';
    for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1)));
    echo $utf;
  ?>
  如果你的PHP文件是GB的,那么下面的代码可以工作:
  <?php
    $str='我爱百度';
    $str=iconv("GBK", "UTF-8",
 $str);
    $utf='';
    for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1)));
    echo $utf;
  ?>
  以上情况下,程序输出的内容是:
  %E6%88%91%E7%88%B1%E7%99%BE%E5%BA%A6

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 381

centos7 mysql 数据库备份与还原

 数据库备份

1
show databases;       #先查看一下数据库

现在我要备份word数据库

退出mysql输入

1
mysqldump -u root -p word > word.sql          #我把它备份在了当前目录下

查看更多...

Tags: centos

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 460

Linux VPS下SSH常用命令

 目录操作:

rm -rf mydir /*删除mydir目录,不需要确认,直接删除*/
mkdir dirname /*创建名为dirname的目录*/
cd mydir /*进入mydir目录*/
cd - /*返回进入此目录之前所在的目录*/
cd .. /*返回上一级目录,中间有空格*/
cd ~ /*回当前用户家目录*/
mv tools tool /*把tools目录改名为tool */
ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/
cp -a tool /home/vpser/www /*把tool目录,复制到www目录下 */
ls /* 列出当前目录下的内容 */
 
文件操作:
rm go.tar        /* 删除go.tar文件 */
find mt.cgi    /* 查找文件名为mt.cgi的文件 */
df -h              /* 查看磁盘剩余空间 */
 
解压缩:
tar xvf wordpress.tar       /* 解压tar格式的文件 */
tar tvf myfile.tar     /* 查看tar文件中包含的文件 */
 
tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */
tar zcf vpser.tar.gz tool /* 把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */
 
tar jcvf  /var/bak/www.tar.bz2 /var/www/    /*创建.tar.bz2文件,压缩率高*/
tar xjf www.tar.bz2 /*解压tar.bz2格式*/
 
gzip -d ge.tar.gz        /* 解压.tar.gz文件为.tar文件 */
unzip phpbb.zip      /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */
 
下载:
wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */
wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/* 继续下载上次未下载完的文件 */
 
转载请注明出处:VPS侦探 https://www.vpser.net
 
进程管理:
ps -aux   /*ps 进程状态查询命令*/
 
ps命令输出字段的含义:
[list]
[*]USER,进程所有者的用户名。
[*]PID,进程号,可以唯一标识该进程。
[*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
[*]%MEM,进程使用内存的百分比。
[*]VSZ,进程使用的虚拟内存大小,以K为单位。
[*]RSS,进程占用的物理内存的总数量,以K为单位。
[*]TTY,进程相关的终端名。
[*]STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
[*]START,进程开始运行时间。
[*]TIME,进程使用的总CPU时间。
[*]COMMAND,被执行的命令行。
[/list]
 
ps -aux | grep nginx  /*在所有进程中,查找nginx的进程*/
kill 1234    /*1234为进程ID,即ps -aux 中的PID*/
killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/
 
资源占用查询:
df -sh /home/wwwroot/* /* 查看/home/wwwroot/下各个目录的占用大小 */
free -m /* 查看内存核swap使用情况 */
top /* 查看程序的cpu、内存使用情况 */
netstat -ntl /* 查看端口占用情况 */
 
用户管理:
adduser /*添加用户,如adduser vpser */
deluser /*删除用户,如deluser vpser */
passwd /*修改密码,按提示输入密码,密码不显示*/
 
Vim操作: vim详细教程:https://www.vpser.net/manage/vi.html
 
移动类的:
h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ <End> : 行末
0 <Home> : 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 当前行移到屏幕的首/中/底部
 
跳转:
"  : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I <Tab> : 则跳到一个 “较新” 的地方
 
查找:
/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录
 
编辑:
i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)
 
退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑
 
掌握这些基本命令,Linux下的基本使用已经掌握,只要多加练习,多遇到问题,解决问题,能力就会不断的提升。

Tags: linux

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 400
WordPress网站搭建起来了,可能会遇到在Wordpress网站的后面无法编辑模板代码的情况,这样的情况一般由以下两个方面的原因导致。
一、wordpress模板目录的权限问题。
Wordpress模板目录的权限问题会导致你在编辑文章时出现“抱歉,您不能编辑这个文件。”这样的提示,解决办法是给网站相应的目录赋予权限。在Linux环境下
chown -R www:www *
如果是自己用VPS,给文件及文件夹赋予权限是平时需要注意的。
二、由于服务器环境禁用了一些存在危险的PHP的函数导致。
LNMP 0.9禁用了部分存在危险的PHP函数,我想开启,怎么操作?
答:修改/usr/local/php/etc/php.ini 查找disable_functions 将后面要使用的函数删掉,保存,然后执行:/etc/init.d/php-fpm restart 重启后即可。
当你在Wordpress后面编辑模板时提示“噢,没有这个文件。请重新检查文件名,然后再试。谢谢。”,则就有可能是禁用的PHP函数导致。由于自己用的是LNMP套件,在查阅了官方的手册后发现禁用的PHP函数包括:passthru, exec, system, chroot, scandir, chgrp, chown, shell_exec, proc_open, proc_get_status, ini_alter, ini_alter, ini_restore, dl, pfsockopen ,openlog, syslog, readlink, symlink, popepassthru, stream_socket_server, fsocket, fsockopen。
解决办法:
编辑php.ini,寻找disable_functions字符串,将后面的scandir删除(提示:vi下可输入/,进入搜索模式,轻松找到disable_functions),然后重启PHP即可
/etc/init.d/php-fpm restart
这样一来Wordpress后面主题无法编辑的问题应该就能解决了,如果还是不行欢迎留言提出。
文章来源:https://www.pusonglin.cn/wordpress-themes-cant-editor/
 
需要用到的命令:
vi php.ini
编辑模式
i
查找
/disable_functions
保存并退出
:wq

Tags: lnmp

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 569

centos7系统下挂载磁盘

一、准备 
centos7云主机一台 
50G云硬盘 
云硬盘挂载到云主机上

二、挂载磁盘 
1.1查看新磁盘

[root@cgsl ]# fdisk –l
  • 1

找到新添加的磁盘的编号为/dev/vdc

1.2硬盘分区 
进入fdisk模式

[root@cgsl ]# /sbin/fdisk /dev/vdc
  • 1

输入n进行分区

[root@cgsl ]# Command (m for help): n
  • 1

选择分区类型(p主分区)

[root@cgsl ]# Select (default p): p
  • 1

选择分区个数(也是分区id)

[root@cgsl ]# Partition number (1-4, default 1): 1
  • 1

选择分区空间大小

Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): +300GB
  • 1

一直回车,最后输入q退出。

三、格式化分区 
将新分区格式化为ext3文件系统

[root@cgsl ]# mkfs -t ext3 /dev/vdc
  • 1

四、挂载硬盘 
1.创建挂载点,在根目录下创建storage目录

[root@cgsl ]# mkdir /storage
  • 1

2.将/dev/vdc挂载到/storage下

[root@cgsl ]# mount /dev/vdc /storage
  • 1

3.设置开机启动自动挂载 
新创建的分区不能开机自动挂载,每次重启机器都要手动挂载。 
设置开机自动挂载需要修改/etc/fstab文件

#vi /etc/fstab 
  • 1

在文件的最后增加一行 
/dev/vdc /storage ext3 defaults 1 2

注意要查询一下自己的硬盘格式,用df -T查询。

硬盘格式化 
1)取消挂载

# unmount /dev/sdb # vi /etc/fstab
  • 1
  • 2

2)进行格式化

# mkfs.xfs /dev/sdb

Tags: centos

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 554

linux,centos下解压tar,gz,bz2,tgz,zip等

 linux,centos下解压tar,gz,bz2,tgz,zip等
Posted on 十月 30, 2011 by ning


今天从ix主机上打包了个zip文件,到linuxvps下总是解压失败,无奈,我打包成tgz,后来网上搜索了相关文章把解压问题搞定了。


1) tar调用gzip


gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip
相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下

查看更多...

Tags: centos

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 509

LNMP 下使用命令导出导入 MySQL 数据库

 作为站点或服务器运维人员,网站的备份与还原操作是必须熟练的。MySQL 数据库的导出和导入操作是必不可少的,对于一般的用户,可能使用的比较多的是 phpMyAdmin 这样的可视化操作界面,但是这种界面操作在数据库比较大的情况下,经常出错。

如果你对Linux下的命令比较熟悉,并且自己使用的是 vps 或云服务器的话,可以使用 MySQL 相关命令来导出和导入数据库,非常方便高效!

导出数据库

导出数据库为 db_wp.sql.gz 文件:

查看更多...

Tags: centos lnmp

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 457

centos 复制并重命名文件

   维护网站时,因为友情链接交换的问题,需要需要修改一下模板foot.htm,但是其他页面也需要调用这个文件,只是首页的变动,因此需要多创建一个文件 footer.htm,以便首页调用这个文件,其他页面正常调用原来的文件,那么就需要用到centos 复制并重命名文件,应该怎么操作?

 
  语法:cp,就是英文copy的缩写,后面加上参数,因为是复制并重命名,所以后面加上-b,在后面就是跟原文件的路径和名称以及新文件的路径和新文件名称。完整的语法例子:
 
  #cp -b /www/foot.htm /www/footer.htm

Tags: centos

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 455

 CentOS 怎么设置某个目录包括子目录的写入权限 777呢 


(目录包括所有子目录)
例如在  /var/www/ccc/p 的目录怎么设置 包括子目录 777权限
chmod -R 777 文件夹
例如:
chmod -R 777 /var var的权限就变成777,var下的所有子目录和文件权限都将变成777

 

Tags: centos

分类:业界文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 509

 广告位

↑返回顶部↑