php文件怎么编码,php建立文件夹时用iconv转换编码在繁体系统乱码是什么原因?
1.确定系统已装繁体(台湾/香港);
2.检查win10(如果是)兼容性,要设置兼容windows 7 或xp3版;
3.涉及浏览器时要使用ie10以下版本。
php7代码如何加密?
我们先写出函数:
<?php
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,'.'),1));
if ('php' == $type && is_file($filename) && is_writable($filename)) { //
如果是PHP文件 并且可写 则进行压缩编码
$contents = file_get_contents($filename); // 判断文件是否已经被编码处
理
$contents = php_strip_whitespace($filename);
// 去除PHP头部和尾部标识
$headerPos = strpos($contents,'<?php');
$footerPos = strrpos($contents,'?>');
$contents = substr($contents, $headerPos + 5, $footerPos -
$headerPos);
$encode = base64_encode(gzdeflate($contents)); // 开始编码
$encode = '<?php'."eval(gzinflate(base64_decode("."'".
$encode."'".")));?>";
return file_put_contents($filename, $encode);
}
return false;
}
调用此函数:
$filename = 'result1.php';
encode_file_contents($filename);
echo "OK,加密完成!";
?>
3
测试是否加密成功:文件名为result1.php,运行代码
4
运行成功。
PHP如何判断字符串是否标准JSON?
引言
在MYSQL 5.6及以下没有 JSON 这个字段类型的时候,我们还只能用字符串存储数组,对象,这些结构数据;甚至有直接将序列化的对象存库的,都是无奈之举。
编程中也时不时对接口进行json_encode / json_decode。那么如果所得的字符串不是标准的格式,有什么办法快速检测吗?
本文就来说一说。
学习时间最快的办法,还是使用PHP内置的 json_decode 函数,对于此函数的参数和返回值,我们需要认真地分析。
该函数接受一个 JSON 编码的字符串并且把它转换为 PHP 变量。函数结构:
mixed json_decode( string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]] )
除了第一个字符串类型的$json必填之外,其他都是选填。如果我们定制功能,需要后面的参数也指定。比如,解码的字符串解析为关联数组,那么就指定 $assoc = true。
考虑到兼容性的要求,$json 传入的字符串,必须是 UTF-8 编码格式。
我们试着编写一个助手函数,用于判断字符串是否标准的json格式:
function isJson($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE); }
这个方法使用了2个函数,和1个常量。其中 json_decode 是对字符串解码暂且不说。json_last_error 函数,如果有返回值,则是 JSON 编码解码时最后发生的错误。
JSON_ERROR_NONE 是无错误,=0。该句判断没有错误则是标准格式,返回 true;否则返回 false。
深入学习其实上面的代码对于 json 加解码过程中的错误判断还是比较粗糙的。有一位小哥不嫌繁琐,手动拼装了详细的错误处理函数,非常实用。
使用上述函数进行测试:
$json = '[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]'; $output = json_validate($json); print_r($output);
输出内容如下:
这是正常的情况,json 格式完全正确。我们再测试一个不是规范格式的字符串。
$json = '{background-color:yellow;color:#000;padding:10px;width:650px;}'; $output = json_validate($json); print_r($output);
输出错误信息:
Syntax error, malformed JSON.
万能的正则跟字符串打交道,正则表达式几乎可以做一切你想要的结果。json 字符串也一样,据文档所说,使用正则表达式判断JSON格式,稳定有效,而且速度还很快。
下面这个正则表达式您拿小本本记好了,一模一样地抄下来用就可以了。
return !preg_match('/[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/', preg_replace('/"(\\.|[^"\\\\])*"/', '', $json_string));
写在最后如果考虑程序的可读性,和可维护性,使用 json_decode 函数的判断无疑更直观,大家也更熟悉。然而正则表达式所体现出的高效也是不容小觑的。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
php怎么将二进制流转换为base64编码?
没有特别作用,因为任何人只要想解都能解开。
BASE64 是将二进制数据 (8位)编码为64个可显示的 ASCII 字符,3个 octet 编码成 4 个 octet。
因此既不是压缩,也不是加密。
估计把php编码成base64只是为了让人读起来麻烦一点。
Mysql中如何查询值为Unicode编码的字符串?
正常情况查查询需要用“\”转义,mysql斜杆转义之后,会去转义别的字符,所有要得到斜杆,需要在加一个斜杆去转义。最后改为四个斜杆“\\\\”,这样才得到一个“\”。因此使用”\\”来查询,数据依然是空。
所以尝试了下在需要匹配的字符斜杠前面加上“\\\\”后查询出了正确的结果。
另外中文查询的时候注意编码转换。