2011-12-01 2 views
2

다음과 같이 변수에 반환하는 대신 텍스트 만 에코하는 함수에서 숫자를 얻으려고합니다.ob_get_clean() 문자열을 정수로 만들 수 없습니다. 출력은 18 자 문자열입니다.

ob_start(); 
function_to_get_id_number(); 
$thisIDnumber = ob_get_clean(); 

$thisIDnumber 변수를 반향 출력하면 원하는 숫자가 HTML 출력에 인쇄됩니다.

그러나 var_dump($thisIDnumber)를 실행하면 다음과 같은 출력 : 문자열 (18) "7" (위해서 var_dump()가에 관계없이 번호가 될 일의 18 문자열을보고 있지만, 수는 7이었다 가정.)

문자열을 정수로 변환하는 시도 (예를 들어 (int)$thisIDnumber, 또는 int_val($thisIDnumber), 또는 $thisIDnumber = 0+$thisIDnumber이 실패하고 출력은 0입니다)

mb_detect_encoding($thisIDnumber) 실행이 ASCII로 인코딩 할 문자열을보고합니다.

저는이 문제를 어떻게 해결할지는 모르겠지만 제안이나 통찰력을 매우 높이 평가할 것입니다! 미리 많은 감사드립니다!

+2

'function_to_get_id_number()'는 모두 무엇을 출력합니까? 실수로 출력되는 새 행이 있습니까? – jprofitt

+0

'nl2br()'을 사용하여'$ thisIDnumber'를 출력해도'
' 태그가 삽입되지 않고' '안에'print_r()'을 사용하면 여분의 태그가 표시되지 않습니다 공백 또는 뉴스 라인. – user1076122

+0

호기심 때문에,'function_to_get_id_number()'가 return 대신에 echo해야하는 이유는 무엇입니까? – jprofitt

답변

0

작업 할 정보가 많지 않으므로 어둠 속에서 촬영 한 것입니다.

다음을 시도해보십시오. ID가 정의에 의해 숫자 인 경우 일반 표현식을 사용하여 다른 모든 것을 제거하여 적용하십시오.

(귀하의 질문에 대한 귀하의 질문에 자신의 의견을 썼습니다 : function_to_get_id_number()에 대한 자세한 정보가 좋을 것입니다. 왜 처음에 출력을 버퍼링해야합니까? function_to_... 문자열을 출력하는 대신 적절한 값을 반환 할 수 없습니까?)

1

이 함수는 많은 공백 (공백, 탭 또는 캐리지 리턴)을 인쇄하고 웹 브라우저를 통해 var_dump()의 출력을 검사 할 경우 설명 할 수 있습니다 (따라서 HTML 및 공백으로 렌더링됩니다). 접힌 상태). 그러나 숫자로 캐스트하면 일반 선행 공백을 무시해야합니다. 그래서 다른 인쇄 할 수없는 문자가있을 수 있습니다.

이 시도 :

ob_start(); 
function_to_get_id_number(); 
$thisIDnumber = ob_get_clean(); 

var_dump($thisIDnumber, bin2hex($thisIDnumber)); 

16 진수 코드가 당신에게 문자열 안에 무엇의 단서를 제공해야합니다.

업데이트 :

$data = '5b777073635f63617465676f72795f69645d'; 

for($i=0, $len=strlen($data); $i<$len; $i+=2){ 
    echo chr(hexdec(substr($data, $i, 2))); 
} 

... 인쇄이 :

[wpsc_category_id] 

: -?

+0

당신이 제안한대로'var_dump ($ thisIDnumber, bin2hex ($ thisIDnumber));를 시도했으며 HTML은 다음을 출력합니다 : 'string (18) "7"string (36) "5b777073635f63617465676f72795f69645d"' 새로운 줄이나 공백을 제거하기 위해 문자열에'trim ($ thisIDnumber)'및'preg_replace ("/ [\ n \ r] /", "", $ thisIDnumber) 어떤 효과가있다. 'nl2br()'을 사용하여 HTML로 출력해도
태그가 삽입되지 않으므로 공백이나 줄 바꿈이 문제가되는 것은 아닙니다. 다른 제안 사항이 있으십니까? 지금까지 도와 주셔서 감사합니다! – user1076122

관련 문제