胜博发娱乐平台【SOS】nginx无法解析php文件?

( 胜博发娱乐平台 )

已经在服务器上装了nginx和php,php-fpm(监听9000端口)
可以正常显示html,但是每当输入url打开一个php时,无法正常解析,导致变成下载模式

nginx.conf如下

现在打开php直接变成404…Orz

干脆贴出来吧,估计是这一段的问题,搞了好久都没进展….

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}

这样写试一下 用nginx -t命令检查你的nginx配置文件是否有错误
location /index.php {

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

}

我以前也有过,当时是centos6,后来换成7了。
之后绑定好域名就好了

还能显示nginx的画面
问题是我用域名安装源码怎么就显示404
用ip安装弹出php文件的下载,php我也运行了啊。
网站默认主目录我也已经定位到www.38934.tech上面了。
苦恼啊!
2016-10-26 09:33:34
管理员
请您确保以下3个设置:

  1. 域名解析到服务器IP

  2. Nginx网站管理里有配置这个域名

  3. 修改完配置后有重载或重启Nginx
    目前已为你修正配置。

第一步 nginx.conf的配置

location / {
        if (!-e $request_filename) {
             rewrite  ^/(.*)$  /index.php/$1  last;
             break;
        }
    }

    location ~ ^/s-([0-9a-z]+)-(.*) {
        rewrite ^/s-([0-9a-z]+)-(.*) /shtmls/$1/$2 last;
        break;
    }

    location ~ .+\.php($|/) {
        set $script    $uri;
        set $path_info  "/";
        if ($uri ~ "^(.+\.php)(/.+)") {
              set $script     $1;
              set $path_info  $2;
        }

        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_FILENAME  $document_root/$script;
        fastcgi_param SCRIPT_NAME $script;

    }

第二步 sudo vim /etc/php5/fpm/pool.d/www.conf
将 ;listen = /var/run/php5-fpm.sock
改成 listen = 127.0.0.1:9000

你的代码直接放在/root里么?你改过之后的完成配置也发一下吧。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

胜博发娱乐平台如何在自己的项目中实现word在线编辑

( 胜博发娱乐平台 )

希望能在自己(公司)的项目中实现word在线编辑,感觉无从下手

(不好意思,没说清楚,我补充一下:比如我上传了一份word,然后能在线编辑这个word文件,编辑之后能保存)

谢邀~
富文本编辑器
http://summernote.org/

你可以使用百度的ueditor
http://ueditor.baidu.com/webs…

如果不考虑富文本编辑器的话,硬要实现office系列的在线编辑。

你大概有以下几条路走:
1、只考虑IE,用专有ActiveX插件,实现浏览器里面编辑office文档。https://github.com/stone0090/…
2、现代浏览器,接入在线的office online 。

不要说在线 Word 编辑,就是在线 Word 阅读都已经很不容易了,这个功能太专业了。

网上能搜到一些阅读组件,大部分是收费的,比如永中的高清服务器版本收费大概是80K。

另外,你可以去看看 Open Office 有没有提供相关的组件。Open Office 一直是开源的 Office 解决方案。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

胜博发娱乐平台php中的字符编码

( 胜博发娱乐平台 )

$str1 = "\xe4\xb8\xad";

$str2 = '\xe4\xb8\xad';

$str3 = '中';

能否详细解释一下三者的区别,是否可以相互转化

第一次在segmentfault上回答问题。。

PHP字符串变量,双引号和单引号的意义是不同的

使用双引号时会转义 单引号时不转义
使用双引号时,$xxxx文本会被相应变量的值替换,单引号没有这个效果

Eg.

$abc='123';
echo "$abc"; //这样会输出123
echo '$abc'; //这样会输出$abc
echo "\n"; //这样会输出一个换行符
echo '\n'; //这样会输出\n两个字符(一个斜杠一个n)

回到问题,
“中”这个汉字在UTF-8的16进制编码是0xe4,0xb8,0xad
因此在双引号字符串中,会被转义为 “中” x开头表示这是一个以十六进制表达的字符,就和HTML中&xe4; 一样
单引号字符串中,直接输出xe4xb8xad

如果你的环境编码是在UTF-8下面, str1和str3等价, 如果直接echo, 都会输出”中”, 如果是二进制层面三个字节比较, 也是完全相等, PHP中的字符串就是直接本地编码二进制存储的

如果你的环境编码是非UTF-8(例如GBK), str1基本上是个乱码, str1和str3也不再等价

至于str2, 它无论什么时候都会输出 ‘\xe4\xb8\xad’ (不含引号, 在单引号的字符串中, 只有单引号本身需要转义成\’, 其它情况的\都视为普通字符处理

只解释第一个与第二个的区别,也就是单引号与双引号的区别

双引号:引号内部会被转义
单引号:引号内部不会被转义

$a = 123;

echo "output:$a";//output:123
echo 'output:$a';//output:$a

//下面的示例仅限linux的php-cli
echo "new line\nsecond line";
/*
会换行,输出:
new line
second line
*/

echo 'no new line\n aaa';
/*
不会换行,输出:
no new line\n aaa
*/

\x后跟着十六进制数字的属于转义字符,转义字符只有在双引号"中才起作用。单引号中只有对单引号本身'和反斜杠\的转义有效,其他的都无效。

PHP本身不区分字符编码。也就是说,$str1是一个三字节的字符串,字符串的三个字节分别是(十六进制编码)E4 B8 AD。如果在UTF-8编码中,就是字。其他编码中就不一定了。

$str2则是一个12字节的字符串,就是你输入的那些字符。

$str3则是一个字符串,如果你把文件以UTF-8编码保存,那就和$str1是一样。如果你以GBK保存,那就是两个字节的D6 D0,如果你以BIG5保存,就是A4 A4


不管是UTF-8、GBK还是BIG5,甚至于很多其他的语言编码,都是遵循EUC的,也就是说对于ASCII字符,他们的编码都是一致的,所以无论用哪种编码保存,对PHP的代码工作都不会有影响。但是对于非ASCII字符就有很大的区别。

所以PHP中的非ASCII字符要正常显示,就要保证你的保存编码和输出编码是一致的。如果是输出的是HTML,是通过meta标签或者在HTTP Header中声明编码的。如果不一致,那就会出现乱码了。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

sbf胜博发php命令行无法运行php脚本

( sbf胜博发 )

谢谢各位大神进来,我的问题是这样的:
我有一个项目中向外请求的次数很多,于是我就单独写了一个脚本开启多进程,在这个多进程脚本中需要先加载项目的头文件,问题就出在这里,我用浏览器直接访问这个脚本是可以加载的,但是用命令行“php+多进程脚本”来开启这个脚本时,头部文件就无法加载,这个无法加载主要是在数据库无法连接的问题。由于项目代码特别大,这边也无法全部贴出来。
所以想请教一下:是不是数据库的加载对方式也有要求,有什么方式能够实现我的需求吗?

应该是命令行的脚本执行方法问题:

  • php /path/a/b/c/index.php 该写法对项目的路径有要求。如果项目中如require等引入的路径是相对路径,那容易出问题

  • cd /path/a/b/c; php index.php 该写法可避免上面问题。

看你是不是属于这种情况。

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

sbf999胜博发官网php数组合并

( sbf999胜博发官网 )

有三个一维数组,
Array ( [0] => 12312 [1] => 2321 [2] => 12321 )
Array ( [0] => 133 [1] => 444 [2] => 888 )
Array ( [0] => qqqqqqq [1] => wqwq [2] => wqe )

合并成
array( [orderno] => 12312 [deliverysn] => 133 [deliverycorpname] => qqqqqqq)

array( [orderno] => 2321 [deliverysn] => 444 [deliverycorpname] => wqwq )  一次类推怎么做

不知道题主是不是这个意思,效果如下
https://3v4l.org/8r0ko

//首先要确定这3个数组是关联数组和所包含的元素个数都是一样的
$arr_orderno = [12321,321,321];
$arr_deliverysn = [7,8,9];
$arr_deliverycorpname = ['asd','qwe','zxc'];

$arr_merge= [];
for($i = 0; $i < count($arr_orderno); $i++){
  $arr_merge[$i] = [$arr_orderno[$i], $arr_deliverysn[$i], $arr_deliverycorpname[$i]];
}

$arr_key = ['orderno', 'deliverysn', 'deliverycorpname'];

$arr = [];
foreach ($arr_merge as $value) {
  $arr[] = array_combine($arr_key, $value);
}


print_r($arr);

foreach($arr_a as $k=>$v){
    $arr_{$k}['orderno'] = $v;
    $arr_{$k}['deliverysn'] = $arr_b[$k];
    $arr_{$k}['deliverycorpname'] = $arr_c[$k];
}

$arr_key = ['orderno', 'deliverysn', 'deliverycorpname'];
$map_arr=array_map(null,$arr_orderno,$arr_deliverysn,$arr_deliverycorpname);
$res=array_map(function($i) use($arr_key){
return array_combine($arr_key,$i);
},$map_arr);
/*
[
     [
       "orderno" => 12321,
       "deliverysn" => 7,
       "deliverycorpname" => "asd",
     ],
     [
       "orderno" => 321,
       "deliverysn" => 8,
       "deliverycorpname" => "qwe",
     ],
     [
       "orderno" => 321,
       "deliverysn" => 9,
       "deliverycorpname" => "zxc",
     ],
   ]
*/

(看完/读完)这篇文章有何感想! sbf999胜博发官网的分享…

胜博发娱乐平台php 路径问题?

( 胜博发娱乐平台 )

index.php里头
注意到这两个:

require __DIR__ . '/vendor/autoload.php';

require 'vendor/autoload.php';

上面两句话还是有区别的,第二句话在有些时候会出问题的,是在命令行执行的时候

__DIR__,指向当前执行的PHP脚本所在的目录
显然2个require的路径不是同一个东西,只是有时候正好相等。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

sbf999胜博发官网phpQuery获取网页里的js变量,如何获取

( sbf999胜博发官网 )

获取:view-source:http://www.dianping.com/shop/…网页里的
window.shop_conifg变量,如何获取?

<script>
window.shop_config={
        userId: 0,
        shopId: 11576689,
        shopName: "优尼牙科",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:['http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038',],
    mainCategoryId:182,
     defaultPic:"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg"
    }
</script>

没用过phpquery,这里用正则

//$str就当phpquery获取的字符串
$str="<script>
window.shop_config={
        userId: 0,
        shopId: 11576689,
        shopName: \"优尼牙科\",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:['http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038',],
    mainCategoryId:182,
     defaultPic:\"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg\"
    }
</script>";

preg_match('#<script>
window.shop_config=([\s\S]*)</script>#',$str,$match);

print_r($match[1]);

/*
{
        userId: 0,
        shopId: 11576689,
        shopName: "优尼牙科",
        cityId: 2,
        power:5,
        shopType:85,
        map:{
            power:5,
        manaScore:0
        },
        licensePics:['http://mss.sankuai.com/v1/mss_bccd2477df9e492ca0baeb67e4eb3491/qualification/8723a20a-a40c-11e3-8fb0-a254baaa25bb?temp_url_sig=c17ff6525cfabce9e5f94b46ca3f9ee5115a1309&temp_url_expires=1479364038',],
    mainCategoryId:182,
     defaultPic:"http://qcloud.dpfile.com/pc/hhF4nWJIwWw4FXmGBaW39dKYr5NdlHLz5G64Lx3QSTypRKzSBzQnLPwzWURFZUAvtOnd3gXQdDYlAqlaVaAFeZ0rYYyiRo_EhzufqWWjTjs.jpg"
    }
*/

(看完/读完)这篇文章有何感想! sbf999胜博发官网的分享…

sbf999胜博发官网字典排序的问题?

( sbf999胜博发官网 )

$a=array(2,1,4,7,1,4,1,9)

想得到key/value,其中key是值,value是该值出现的次数,如下所示:

$b={2:1,1:3,4:2,7:1,9:1}

$a中元素比较多,如何用最少的循环解决这个问题?

// 直接用函数
>>> array_count_values($a)
=> [
     2 => 1,
     1 => 3,
     4 => 2,
     7 => 1,
     9 => 1,
   ]

$b = [];
foreach ($a as $i) {
   $b[$i] =  isset($b[$i]) ? $b[$i] + 1 : 0;
}

循环一次

(看完/读完)这篇文章有何感想! sbf999胜博发官网的分享…

胜博发娱乐平台为什么ImageMagick转换PDF为png,小文件可以,稍大点就不行?

( 胜博发娱乐平台 )

php里用imagick扩展调用imagemagick,把pdf转化成png文件,几个中英文字的小文件转换成功,稍大点就不行,登录LINUX命令行方式转化也不行,请问是什么原因?

这个问题是弄错了,实际情况是imagick无法转换非内嵌字体的PDF文件,我重新提了一个问题,希望能帮我解答一下,谢谢。
https://segmentfault.com/q/10…

看下这文章ImageMagick转PDF为png,最好使用最新版本的ImageMagick。
首先不确定你是怎么操作的,至于你命令行是如何调用的也无从获知,希望能帮到你。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

胜博发娱乐平台laravel被人利用漏洞了,可是不知道怎么被利用的,求解

( 胜博发娱乐平台 )

public function postStore(Request $request){
    
        switch ($request->input('type')) { //对提交过来的type进行判断
            case 'redBagCart':
                $type=1;
                $order_type='HB';
                break;
            
            default:
                $type=0;
                $order_type='WX';
                break;
        }
    
         ...
         
        Log::info($request->input('type')); //记录到日志里

})

大概代码如上,可是奇怪的一点是,我数据库有对这个$order_type进行记录,数据库记录的是HB,也就是$request->input('type')是redBagCart,可是日志里记录的却是'',空。
为什么会这样。

$data[‘provinceName’]哪里来的?
Log::info('mylog', ['type'=>$request->input('type')]);

可以试试把$request->input('type')赋值给一个变量再使用

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…

sbf胜博发微信开发文档第三步:刷新access_token这个有什么用

( sbf胜博发 )

http://mp.weixin.qq.com/wiki/…

微信文档中说的刷新access_token有什么用?要获取到用户的openid不是每次都要先获得code(唯一的吧?),再用code去获取access_token,再获取到openid,那把access_token刷新是什么意思?请微信开发的大神指导下、

access_token有过期时间,7200秒。过期了就要重新获取。

因为token是有过期时间的,如果长时间用一个token,过期了,就无法正常请求了

access_token 设计这个值时,为了考虑安全问题,就如session一样.有生命周期.若长时间未访问,超过access_token生命周期,系统则认为已过期.

注意看这一段:

关于网页授权access_token和普通access_token的区别

  1. oauth的access_token:第一次进入你的网站时进行一次授权,获取用户的信息(openid)。

  2. 普通access_token:调用微信的rest接口时,微信服务器都需要进行安全认证。将此access_token带在url参数中。

现在各种语言都有相应的sdk帮忙获取“普通access_token”,并做超时自动重新获取。如果是用来做项目的话,可以不用造轮子了,github上面一大堆。除了access_token的功能外,还封装了各个接口的各种sdk。

  1. access_token每日请求次数有要求

  2. 获取用户的access_token,需要用户授权

  3. access_token时效短

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

sbf999胜博发官网是字符串拼接的错误吗?

( sbf999胜博发官网 )

写成下面这样不行 这样报错Call to a member function where() on array
改成这样"href='$v[href]'"还是报同样的错 这是为什么?

$num=$res2->where("href=".$v['href'])->select();

看报错信息是因为 $res2 是数组不是对象啊。var_dump($res2) 看看是什么值,是不是把 query 对象变成数组返回了。

(看完/读完)这篇文章有何感想! sbf999胜博发官网的分享…

sbf胜博发【PHP】在用PHP来统计一个纯英文的txt的单词的时候,为什么会这种情况?【已解决】

( sbf胜博发 )

代码如下:

<?php
/**
* 任一个英文的纯文本文件,统计其中的单词出现的个数。
* Created by PhpStorm.
* User: Paul
* Date: 2016/11/5
* Time: 23:18
*/

$content = file_get_contents('4/Gone with the wind.txt');
$res = count_word($content, 1);
print_r($res);

/**
* 任一个英文的纯文本文件,统计其中的单词出现的个数。
* @param string $string  字符串
* @param int $lower 是否大小写   1:不区分大小写  0:区分大小写
* @return array
*/
function count_word($string, $lower = 0) {
    $string = trim($string);
    if ($lower) {
        $string = strtolower($string);
    }

    //过滤掉一些标点符号
    $string = str_replace(';', '', $string);
    $string = str_replace(',', '', $string);
    $string = str_replace('.', '', $string);
    $string = str_replace('.', '', $string);
    $string = str_replace('‘', '', $string);
    $string = str_replace('?', '', $string);
    $string = str_replace('“', '', $string);
    $string = str_replace('”', '', $string);
    $string = str_replace('―', '', $string);
    $string = str_replace('-', '', $string);
    $string = str_replace('!', '', $string);
    $string = str_replace(':', '', $string);
    $string = str_replace('(', '', $string);
    $string = str_replace(')', '', $string);

    $array = explode(' ', trim($string));

    $res = array();
    foreach ($array as $key=>$value) {
        //过滤掉如I’ll、you’re、masters’s等单词
        if (strpos($value, '’') !== false || strpos($value, "'") !== false) {
            continue;
        }

        //过滤掉空
        if (empty($value) === true) {
            continue;
        }

        if (array_key_exists($value, $res)) {
            $res[$value]++;
        } else {
            $res[$value] = 1;
        }
    }

    //排序
    array_multisort($res, SORT_DESC, SORT_NUMERIC);
    return $res;
}

输出结果:

array(
    [repression] => 1
    [thoroughness] => 1
    [bleached] => 1
    [tow] => 1
    [inspired] => 1
    [uniformwell] => 1
    [panamas] => 1
    [caps
when] => 1
)

不明白为什么会把两个单词给判断成一个单词,txt呢是用sublime打开并且设置编码为UTF-8,没有用电脑自带的文本文档工具打开编辑过,另外呢,过滤标点符号的时候也有加上过滤掉rn来处理,但是没效果,所以代码去掉了。求解为什么会出现这种情况并且如何避免?

你的问题应该就出在没有处理换行(和回车)以及那些过滤字符被替换成了”, 应该替换成’ ‘

<?php
$content = file_get_contents(__FILE__); //没有你的原始文本, 所以就直接读取文件自身作为样本了
$res = count_word($content, 1);
print_r($res);

/**
* 任一个英文的纯文本文件,统计其中的单词出现的个数。
* @param string $string  字符串
* @param int $lower 是否大小写   1:不区分大小写  0:区分大小写
* @return array
*/
function count_word($string, $lower = 0) {
    $string = trim($string);
    if ($lower) {
        $string = strtolower($string);
    }

    //过滤掉一些标点符号
    $string = str_replace([';',',','.','.','‘','?','“','”','―','-','!',':','(',')',"\r","\n"], ' ', $string);
    $array = explode(' ', $string);

    $res = array();
    foreach ($array as $key=>$value) {
        //过滤掉空
        if (!$value) {
            continue;
        }

        //过滤掉如I’ll、you’re、masters’s等单词
        if (strpos($value, '’') !== false || strpos($value, "'") !== false) {
            continue;
        }

        if (array_key_exists($value, $res)) {
            $res[$value]++;
        } else {
            $res[$value] = 1;
        }
    }

    //排序
    array_multisort($res, SORT_DESC, SORT_NUMERIC);
    return $res;
}

不知道你的文件里的字符串是什么样子的,不过trim函数只会去掉两边的空格(rn),感觉问题会出在这里。

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

sbf胜博发有没有复杂度为O(n)的二维数组合并去重算法

( sbf胜博发 )

有没有复杂度为O(n)的二维数组合并去重算法

$a = [
    ['id'=>1],
    ['id'=>2],
    ['id'=>3],
    ['id'=>4],
    ['id'=>5],
    ['id'=>6]
];
$b = [
    ['id'=>5],
    ['id'=>6],
    ['id'=>7],
];
$c = [
    ['id'=>8],
    ['id'=>9]
];

function array_unique_merge() {
    $params = func_get_args();
    $result = [];
    $hashmap = [];
    $arr_count = count($params);
    for($i = 0; $i<$arr_count; $i++) {
        foreach($params[$i] as $key => $val) {
            $md5 = md5(json_encode($val));
            if (!isset($hashmap[$md5])) {
                $hashmap[$md5] = true;
                $result[] = $val;
            }
        }
    }
    return $result;
}

print_r(array_unique_merge($a, $b, $c));

我只是贴出来一下我的想法可以这么做。如果n指的是所有数组的元素数量之和。

这个必须要用2循环,对n的定义应该是多个关联数组的元素之和,双循环就算是O(n)了

serialize以后当作hash比较,这个思路呢?手机我就不写代码了…

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

sbf胜博发【SOS】nginx无法解析php文件?

( sbf胜博发 )

已经在服务器上装了nginx和php,php-fpm(监听9000端口)
可以正常显示html,但是每当输入url打开一个php时,无法正常解析,导致变成下载模式

nginx.conf如下

现在打开php直接变成404…Orz

干脆贴出来吧,估计是这一段的问题,搞了好久都没进展….

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
}

这样写试一下 用nginx -t命令检查你的nginx配置文件是否有错误
location /index.php {

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

}

我以前也有过,当时是centos6,后来换成7了。
之后绑定好域名就好了

还能显示nginx的画面
问题是我用域名安装源码怎么就显示404
用ip安装弹出php文件的下载,php我也运行了啊。
网站默认主目录我也已经定位到www.38934.tech上面了。
苦恼啊!
2016-10-26 09:33:34
管理员
请您确保以下3个设置:

  1. 域名解析到服务器IP

  2. Nginx网站管理里有配置这个域名

  3. 修改完配置后有重载或重启Nginx
    目前已为你修正配置。

第一步 nginx.conf的配置

location / {
        if (!-e $request_filename) {
             rewrite  ^/(.*)$  /index.php/$1  last;
             break;
        }
    }

    location ~ ^/s-([0-9a-z]+)-(.*) {
        rewrite ^/s-([0-9a-z]+)-(.*) /shtmls/$1/$2 last;
        break;
    }

    location ~ .+\.php($|/) {
        set $script    $uri;
        set $path_info  "/";
        if ($uri ~ "^(.+\.php)(/.+)") {
              set $script     $1;
              set $path_info  $2;
        }

        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_FILENAME  $document_root/$script;
        fastcgi_param SCRIPT_NAME $script;

    }

第二步 sudo vim /etc/php5/fpm/pool.d/www.conf
将 ;listen = /var/run/php5-fpm.sock
改成 listen = 127.0.0.1:9000

你的代码直接放在/root里么?你改过之后的完成配置也发一下吧。

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

sbf胜博发如何在自己的项目中实现word在线编辑

( sbf胜博发 )

希望能在自己(公司)的项目中实现word在线编辑,感觉无从下手

(不好意思,没说清楚,我补充一下:比如我上传了一份word,然后能在线编辑这个word文件,编辑之后能保存)

谢邀~
富文本编辑器
http://summernote.org/

你可以使用百度的ueditor
http://ueditor.baidu.com/webs…

如果不考虑富文本编辑器的话,硬要实现office系列的在线编辑。

你大概有以下几条路走:
1、只考虑IE,用专有ActiveX插件,实现浏览器里面编辑office文档。https://github.com/stone0090/…
2、现代浏览器,接入在线的office online 。

不要说在线 Word 编辑,就是在线 Word 阅读都已经很不容易了,这个功能太专业了。

网上能搜到一些阅读组件,大部分是收费的,比如永中的高清服务器版本收费大概是80K。

另外,你可以去看看 Open Office 有没有提供相关的组件。Open Office 一直是开源的 Office 解决方案。

(看完/读完)这篇文章有何感想! sbf胜博发的分享…

胜博发娱乐平台php中的字符编码

( 胜博发娱乐平台 )

$str1 = "\xe4\xb8\xad";

$str2 = '\xe4\xb8\xad';

$str3 = '中';

能否详细解释一下三者的区别,是否可以相互转化

第一次在segmentfault上回答问题。。

PHP字符串变量,双引号和单引号的意义是不同的

使用双引号时会转义 单引号时不转义
使用双引号时,$xxxx文本会被相应变量的值替换,单引号没有这个效果

Eg.

$abc='123';
echo "$abc"; //这样会输出123
echo '$abc'; //这样会输出$abc
echo "\n"; //这样会输出一个换行符
echo '\n'; //这样会输出\n两个字符(一个斜杠一个n)

回到问题,
“中”这个汉字在UTF-8的16进制编码是0xe4,0xb8,0xad
因此在双引号字符串中,会被转义为 “中” x开头表示这是一个以十六进制表达的字符,就和HTML中&xe4; 一样
单引号字符串中,直接输出xe4xb8xad

如果你的环境编码是在UTF-8下面, str1和str3等价, 如果直接echo, 都会输出”中”, 如果是二进制层面三个字节比较, 也是完全相等, PHP中的字符串就是直接本地编码二进制存储的

如果你的环境编码是非UTF-8(例如GBK), str1基本上是个乱码, str1和str3也不再等价

至于str2, 它无论什么时候都会输出 ‘\xe4\xb8\xad’ (不含引号, 在单引号的字符串中, 只有单引号本身需要转义成\’, 其它情况的\都视为普通字符处理

只解释第一个与第二个的区别,也就是单引号与双引号的区别

双引号:引号内部会被转义
单引号:引号内部不会被转义

$a = 123;

echo "output:$a";//output:123
echo 'output:$a';//output:$a

//下面的示例仅限linux的php-cli
echo "new line\nsecond line";
/*
会换行,输出:
new line
second line
*/

echo 'no new line\n aaa';
/*
不会换行,输出:
no new line\n aaa
*/

\x后跟着十六进制数字的属于转义字符,转义字符只有在双引号"中才起作用。单引号中只有对单引号本身'和反斜杠\的转义有效,其他的都无效。

PHP本身不区分字符编码。也就是说,$str1是一个三字节的字符串,字符串的三个字节分别是(十六进制编码)E4 B8 AD。如果在UTF-8编码中,就是字。其他编码中就不一定了。

$str2则是一个12字节的字符串,就是你输入的那些字符。

$str3则是一个字符串,如果你把文件以UTF-8编码保存,那就和$str1是一样。如果你以GBK保存,那就是两个字节的D6 D0,如果你以BIG5保存,就是A4 A4


不管是UTF-8、GBK还是BIG5,甚至于很多其他的语言编码,都是遵循EUC的,也就是说对于ASCII字符,他们的编码都是一致的,所以无论用哪种编码保存,对PHP的代码工作都不会有影响。但是对于非ASCII字符就有很大的区别。

所以PHP中的非ASCII字符要正常显示,就要保证你的保存编码和输出编码是一致的。如果是输出的是HTML,是通过meta标签或者在HTTP Header中声明编码的。如果不一致,那就会出现乱码了。

(看完/读完)这篇文章有何感想! 胜博发娱乐平台的分享…