我正在对一些混乱的数据进行一些数据清理,这些数据正被导入到mysql中.
数据包含'伪'unicode字符,它实际上作为'u00e9'等嵌入到字符串中.
所以一个字段可能是..'Jalostotitlu00e1n'我需要撕掉那个笨拙的'u00e1n'并用相应的utf字符替换它
我可以在mysql中使用substring和CHR执行此操作,但是我通过PHP预处理数据,所以我也可以在那里执行.
我已经知道如何配置mysql和php来处理utf数据.问题实际上只是在我导入的源数据中.
谢谢
我知道你不应该依赖InnoDB的SHOW TABLE STATUS返回的值.特别是行数和平均数据长度.
但我想也许这是在某个时刻采取的准确值,然后innodb只会在ANALYZE表或其他一些不常见的事件中刷新它.
相反,我看到的是我可以在5秒内在同一个桌面上运行SHOW TABLE STATUS 5次,并且每次都获得完全不同的数字(尽管表中没有任何插入/删除活动)
这些价值实际上来自哪里?它们在innodb中是否只是腐败?
我想str_word_count()在UTF-8字符串上使用.
这在PHP中安全吗?在我看来它应该是(特别是考虑到没有mb_str_word_count()).
但是在php.net上,有很多人通过展示他们自己的"多字节兼容"版本的功能来混淆水.
所以我想我想知道......
鉴于str_word_count简单地计算由" "(空格)分隔的所有字符序列,它应该在多字节字符串上是安全的,即使它不一定知道字符序列,对吧?
UTF-8中是否有等效的'空格'字符,它们不是ASCII " "(空格)?#
这是我猜的问题所在.
我有一堆正在处理的文本/ html文档
其中一些包含编码的html实体,我试图将其转换为原始解码的utf字符.
这很容易使用html_entity_decode,但是,某些实体是无效的,例如
򙦙
Run Code Online (Sandbox Code Playgroud)
出于这个原因,我正在使用正则表达式来提取每个单独的实体,然后尝试以某种方式验证它们.
如果一个实体无效,我想把它保留򙦙在文档中,但像编码的东西&仍然会变成&.
只是一些示例测试代码我敲了..
<?php
function dump_chars($s)
{
if (preg_match_all('/&[#A-Za-z0-9]+;/', $s, $matches))
{
foreach ($matches[0] as $m)
{
$decoded = html_entity_decode($m, ENT_QUOTES, "UTF-8");
echo "[" . htmlentities($m, ENT_QUOTES, "UTF-8") . "] ";
echo "Decoded: [" . $decoded . "] ";
echo "Hex: [" . bin2hex($decoded) . "] ";
echo "detect: [" . mb_detect_encoding($decoded) . "]";
echo "<br>";
}
}
}
$payload = "" & ͉ ’ 򙦙";
echo …Run Code Online (Sandbox Code Playgroud) 我喜欢重新设计我的数据库/网站的某些方面,我正在寻找PHP中相当强大的加密函数,MySQL也支持这些函数.
我还需要加密/解密100%便携和兼容
大多数情况下,我将使用PHP加密,从MySQL中选择加密版本,然后在PHP中解密.但偶尔我需要运行一个查询来解密MySQL中的字段,用于报告目的等
我看了一下mycrypt php库,但不清楚MySQL支持哪些这些密码.有什么建议吗?
我正在调整一个大型查询,并希望在之前和之后从相同的基线运行它,以进行比较.
我知道mysql查询缓存,但它与我无关,因为无论如何都不会缓存2个查询.
正在缓存的是缓冲池中的innodb页面.有没有办法清除整个缓冲池,以便我可以比较来自同一起点的两个查询?
虽然在运行每个查询后重新启动mysql服务器无疑会起作用,我想尽可能避免这种情况
我有一个对象数组,如下所示(虽然下面的例子只有一个元素在数组中)
[
{
"uptime":0,
"load":{"x":0.11,"y":0.22,"z":0.33},
"cpu":[
{"u":111,"n":112,"s":113,"i":114,"q":115},
{"u":211,"n":212,"s":213,"i":214,"q":215}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我试图使用underscore.js来展平每个元素,所以整个数组看起来像这样:
[
{
"uptime":0,
"load_x": 0.11
"load_y": 0.03
"load_z": 0.01,
"cpu1_u": 111,
"cpu1_n": 112,
"cpu1_s": 113,
"cpu1_i": 114,
"cpu1_q": 115,
"cpu2_u": 211,
"cpu2_n": 212,
"cpu2_s": 213,
"cpu2_i": 214,
"cpu2_q": 215,
}
]
Run Code Online (Sandbox Code Playgroud)
我已经对'load'元素进行了排序(虽然不是一般),因为那只是一个已知的3字段对象.
尽管如此,扁平化cpu阵列也使我望而却步.我的代码如下,以及我的代码生成的输出
我知道我可以写一个js循环并完成它,但我已经看到了一些非常优雅的下划线解决方案,我确信它可能.有什么建议吗?
我的守则
var profiles = [
{
"uptime":0,
"load":{"x":0.11,"y":0.22,"z":0.33},
"cpu":[
{"u":111,"n":112,"s":113,"i":114,"q":115},
{"u":211,"n":212,"s":213,"i":214,"q":215}
]
}
];
var flat = _.map(profiles, function(profile) {
var p = _.extend(_.omit(profile, 'load'), {
load_1: Math.round(100*profile.load.x)/100,
load_5: Math.round(100*profile.load.y)/100,
load_15: Math.round(100*profile.load.z)/100
});
var …Run Code Online (Sandbox Code Playgroud) Javascript提供了location.reload(nocache)API。
当'nocache'参数为true时,它将绕过浏览器缓存强制从服务器重新加载当前URL。
通过导航到新的网址时,是否有等效的方法window.location.href = url;?
我有一个聊天应用程序,它可以检测到客户端正在运行的版本(与服务器期望的版本相比),如果它们不同,它将提示客户端导航到最新版本的URL。
但是我发现当我发出此消息时,许多客户端仍在使用缓存的脚本。
我将我的网站转换为utf,除了遗留代码需要使用stripslashes()
我听说过条带可以破坏utf数据,但我不确定我理解为什么.utf为所有非第一个字符设置高位(与ASCII兼容),是否可以安全地运行utf数据?
如果我尝试在utf数据上运行stripslashes,是否存在潜在的安全漏洞.我使用带有斜杠的无效utf代码运行了一些测试,但是无法提出任何测试
在将我的网站转换为使用utf-8之后,我现在面临着验证所有传入的utf数据的前景,以确保其有效和连贯.
似乎有各种正则表达式和PHP API来检测字符串是否为utf,但我看到的似乎不完整(regexps验证utf,但仍然允许无效的第3个字节等).
我还关注检测(和防止)过长编码,这意味着可以编码为多字节utf序列的ASCII字符.
欢迎任何建议或链接!