关于PHP输出字符串多了两个字节的BUG
近日IOS开发那边小伙伴跟我说,解析服务器发回的字符信息时候出现bug.
明明利用Log输出来的是字符串“hello” 可是利用length计算就是多出来两个字节,比如这里是7.
我一听没道理啊,于是检查我的服务器输出,首先开始排除是不是在某个echo或者print的时候,多输出了两个字符。
可是任我查来查去都木有这个问题,直接从服务器echo的时候判断长度输出,也没有复现这个问题。
真是一脸懵逼,毕竟PHP不是那么熟悉。
最后的最后,当我晚上十点钟,我通过Python访问传回的字符串,发现每个返回的字符串前面都多了“\r\n”的,因为正常的log里面,这俩字符都自动换行了没有显示,所以完全没想到。
我自然去寻找我如何显示输出了“\r\n”,然而当我找遍脚本没发现这俩货时,我的内心是崩溃的o(╯□╰)o。
最后的最后,问题竟然在于某一个include的php脚本的最后多了一个空行!!!!!
<?php echo "hello"; ?>
//就是这个空行,会导致你输出“\r\nhello” ........
所以 你就在我每个输出前面加个空行,手动黑人问号脸!
PHP是世界上最好的语言!!!!!!
update: IIS中文件路径正确的情况下的404 可能是文件不识别(比如GeoJson)需要手动添加MIME(geojson,MIME 类型: application/octet-stream).
关于PHP输出字符串多了两个字节的BUG的更多相关文章
- PHP截取带有汉字的字符串,将汉字按两个字节计算
<?php header("Content-type:text/html;charset=utf-8"); /** *截取字符串,汉字占两个字节,字母占一个字节 *页面编码必 ...
- C# Tostring 格式化输出字符串全解
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 .ToString("D5") E 科学型 .ToString("E" ...
- Python 3.x 格式化输出字符串 % & format 笔记
Python 3.x 格式化输出字符串 % & format 笔记 python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记 %c字 ...
- C++读取字符串数据的两种方式
C++读取字符串数据的两种方式 对于同样的样例输入: ladder came tape soon leader acme RIDE lone Dreis peat ScAlE orb eye Ride ...
- C语言风格字符串的概念、定义、输入字符串、输出字符串
字符串: C语言中最有用.最重要的数据类型之一. 字符串:是以\0字符结尾的char类型数组.所以可以把数组和指针知识应用于字符串. 如何在程序定义字符串: 1.字符串字面量 用双引号括起来的内容称为 ...
- Asp.net MVC Razor输出字符串方法(js中嵌入razor)
@{ Model p = new Model(); //输出名称和年龄 //1.第一种方式 @:姓名=@p.Name //2.第二中方式 <text>年龄=</text>p.A ...
- substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法 stringObject.substring(start,stop) 参数 描述 start 必需.一个非负的整数,规定 ...
- QuickHit项目(输出字符串游戏)
public class leve { private int leveNo; private int strLength; private int strTimes; private int tim ...
- python出输出字符串方式:
python出输出字符串方式: >>> who='knights' >>> what='NI' >>> print ('we are the',w ...
随机推荐
- Linux crontab定时器设置(定期执行java程序)(转)
Crontab 语法 Crontab语法一个crontab文件用五个段来定义:天,日期和时间,和一个要定期执行的命令代码. * * * * * command to be execut ...
- spark streaming 实例
spark-streaming读hdfs,统计文件中单词数量,并写入mysql package com.yeliang; import java.sql.Connection; import java ...
- Android Weekly Notes Issue #281
October 29th, 2017 Android Weekly Issue #281 本期内容不多,包含了小众DI库牙签帮助测试的文章,Kotlin中Delegate的强大之介绍,以及基于Goog ...
- HDU 1892 See you~(二维树状数组)
See you~ Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Su ...
- 反馈法学习设计模式(一)——策略模式Strategy Pattern
简介(Introduction) 之前学习Java8实战时,遇到一个很好的策略模式示例.便想着借着这个示例结合反馈式的方法来,学习策略设计模式,也以便后面反复琢磨学习. 首先我们通过练习,逐步写出符合 ...
- CentOs7相对于CentOs6的常用命令变化
比如说防火墙在CentOS6中为 iptables,在CentOS7中变为 firewalld. service iptables stop/start/restart systemctl stop/ ...
- 设备类型检测大全---userAgent
对各种类型的设备的检测,以及所使用的浏览器的类型 function detect(ua) { var os = this.os = {}; var browser = this.browser = { ...
- progress 相关事件 异步 ajax
loadstart — Fires when the fi rst byte of the response has been received.progress — Fires repeatedly ...
- HTML学习笔记 w3sCss盒子模型(阴影)(div的一些使用)案例 第十节 (原创) 参考使用表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java反射机制使用场景
import java.io.*; import java.util.Properties; /*问题描述:存在一个主板--已经定义好,不想修改其代码,还想在主板上面增加一些其他功能? *问题解决方法 ...