小编Dam*_*irR的帖子

非破坏性的utf-8 0xc2a0空间和preg_replace奇怪的行为

在我的字符串中,我有utf-8非破坏空间(0xc2a0),我想用其他东西替换它.

我用的时候

$str=preg_replace('~\xc2\xa0~', 'X', $str);
Run Code Online (Sandbox Code Playgroud)

它运作正常.

但是当我使用时

$str=preg_replace('~\x{C2A0}~siu', 'W', $str);
Run Code Online (Sandbox Code Playgroud)

找不到(并替换)不间断的空间.

为什么?第二个正则表达式有什么问题?

格式\x{C2A0}是正确的,我也用u旗帜.

php regex

32
推荐指数
2
解决办法
2万
查看次数

mysql 5.7。GET_LOCK 不再起作用

升级到 mysql 5.7 后GET_LOCK停止工作,因为它在 mysql 5.5 上使用并且正如我预期的那样工作。我知道有关GET_LOCK5.7中的更改。作为描述在这里

当我从 cmd 行执行相同的脚本两次 - 中间有小暂停 - 它按预期工作:第一个获取锁,第二个没有。

当我通过浏览器执行相同的 php 脚本两次时 - 中间有小暂停 - 都返回他们成功获取锁。这个结果不是我所期望的,它与 5.5 版以及我对GET_LOCK5.7 文档中描述的理解不同。

  • PHP 作为模块运行(phpinfo() 显示 Server API: Apache 2.0 Handler )。
  • PHP 版本为:7.0.20
  • Mysql 版本是:5.7.18 OS 是
  • CentOS 7.

这是示例脚本locktest.php

<?php


$host = 'localhost';
$db   = 'enter_your_db';
$user = 'enter_your_username';
$pass = 'enter_your_password';
$charset = 'utf8mb4';


$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, …
Run Code Online (Sandbox Code Playgroud)

php mysql apache

6
推荐指数
0
解决办法
1094
查看次数

标签 统计

php ×2

apache ×1

mysql ×1

regex ×1