【发布时间】:2011-12-01 19:21:11
【问题描述】:
我正在尝试从仅回显文本而不是将其返回到变量的函数中获取数字,如下所示:
ob_start();
function_to_get_id_number();
$thisIDnumber = ob_get_clean();
如果我回显 $thisIDnumber 变量,所需的数字将打印在 HTML 输出中。
但是,运行 var_dump($thisIDnumber) 会输出以下内容:string(18) "7"
(假设数字是 7,尽管 var_dump() 报告一个 18 个字符的字符串,不管数字是多少。)
任何将字符串转换为整数的尝试(例如 (int)$thisIDnumber 或 int_val($thisIDnumber) 或 $thisIDnumber = 0+$thisIDnumber 都会失败并且输出为 0)
运行 mb_detect_encoding($thisIDnumber) 报告字符串是 ASCII 编码的。
我不太确定如何解决这个问题,但非常感谢任何建议或见解!非常感谢!
【问题讨论】:
-
function_to_get_id_number()输出了什么?是否有任何可能无意中输出的新行? -
使用
nl2br()输出$thisIDnumber不会插入任何<BR />标签,并且在<!-- Comment Block -->内使用print_r()也不会显示任何额外的空白或新闻行。跨度> -
出于好奇,为什么
function_to_get_id_number()必须回显而不是返回?
标签: php integer output-buffering