你为什么不先$user_name=''?
顺便请教一下你这个程序是干什么用的?看起来比较奇特。

解决方案 »

  1.   

    <?php 这前面有没有输出
      

  2.   

    有特殊字符。
    unicode头
      

  3.   

    20不是unicode特殊字符,就是空格,trim掉就行了
      

  4.   

    好像是socket通讯协议的吧,之前看过c的程序!
    不过还是不懂,个人看法:
    对$username进行赋值,看接收到的是什么,如果固定的多一个字节的话,可以在接收是先过滤一个字节!
    小李的建议似乎也有道理啊!
      

  5.   

    我发现php返回给浏览器的所有数据在第一个数据前都有一个0x20,有人说trim(),是误解我的意思啦,我的username前面本身没有空格.trim是针对数据中本身有空格来说的.
    这个问题我也是在想是否设计到字符串的输出的本身的局限性,比如apache+php或者跟浏览器本身需要有关系?
    我也想着是否拿socket来写,但是还不会,请教大家有什么好的方法,我的数据不是返回给浏览器的,是返回给程序,如果多了一个空格,就会导致处理数据错误.
      

  6.   

    不先$user_name=''是因为我这个变量本身已经有数据了,为了满足这个数据的长度,需要在后面添加0x00,目前的问题不在于赋值跟循环,而是在于随意一个简单的php的echo等输出字符串的命令,返回给浏览器都会多一个0x20在前面,你们可以hook socket看下,浏览器接收浏览的时候是自动去掉这个空格了,所以容易欺骗人的眼睛,但是对返回数据要求比较严格的应用程序来说,这个无疑是一个返回的错误的东西...
      

  7.   

    用循环?$username = str_pad($username, $buffer,"\x00");这个也可以满足你的要求
    =========================echo "\x20" == " ";
    所有都输出,还仅仅是一个,所以就是空格。=============================
    <?php 看看这前面有没有输出,我这里没出现你说的现象,
      

  8.   

    可能有特殊字符吧,我记得我复制过一个简单的header()总是报错。前面其实什么也没有。没有办法,只好把它删掉,重新手写就可以了。
    你用ie显示正常,用firefox说不定就可以显示不正常了。试试。
      

  9.   

    非常感謝大家的幫忙!尤其感謝酸奶的提示,經過仔細查找,發現在我引用的config文件裏面,最後的?>之後,多了一個空格....但是我有個問題就是<?php....?>,語法沒有問題,也沒有輸出,只是在主文件中require一下,這個空格也會隨著輸出而輸出么?