2013-02-15 3 views
1

다음은 일부 PHP 코드입니다. 각php foreach가 제대로 작동하지 않음

username=username&password=password&token=token 

폭발하지만 아래에 반환됩니다 무엇을 위해 내가 할 수있는 foreach는()를 원하는 것은

$user_pass = " 
vortex90:OPFY4MB8 
jimmy3:3M7ISWof 
dave-ish-mental:YEnMMXua 
cindybaby:rRHxrErp 
claire-x:H4VrT8Xx 
icemonster:ODId9N17 
"; 

$token = 'token';  
$ex = explode("\r", $user_pass); 

foreach ($ex as $info) { 
    print "username=" . str_replace(":", "&password=", $info) . "&token=" . $token . "\n"; 
} 

쇼이다.

vortex90&password=OPFY4MB8 
jimmy3&password=3M7ISWof 
dave-ish-mental&password=YEnMMXua 
cindybaby&password=rRHxrErp 
claire-x&password=H4VrT8Xx 
icemonster&password=ODId9N17 

예상대로 복귀하지 않는 이유는 무엇입니까? 모든 대답은 환영합니다.

이 나를 위해 작동
+4

'\ r'을 반환하십시오. –

+0

\ n 또는 \ n이 아닌 것을 어떻게 압니까? –

+4

는 예상대로 작동합니다 : http://codepad.viper-7.com/wkYlhC –

답변

3

, 그것은 PHP_EOL 사용하는 것이 더 연습은 다음과 같습니다

$token = "bla"; 
$user_pass = " 
vortex90:OPFY4MB8 
jimmy3:3M7ISWof 
dave-ish-mental:YEnMMXua 
cindybaby:rRHxrErp 
claire-x:H4VrT8Xx 
icemonster:ODId9N17 
"; 

$explode = explode(PHP_EOL, $user_pass); 

foreach($explode as $i) { 
$replace_shit = str_replace(array("\r","\n",":"), array("","","&password="), $i); 
$user_info = "username=".$replace_shit."&token=".$token."<br>\n"; 

echo $user_info; 
} 

DEMO : 아마도 당신은 \``줄 바꿈에`) (폭발 캐리지를하지 n` 필요하기 때문에 http://sandbox.onlinephpfunctions.com/code/02f6663f7fa69c158a90fde2ab421cf52a78f7ce

+0

FYI :'PHP_EOL'은 모든 플랫폼에서'\ n'입니다. 그것은 중요하지 않습니다. – cgTag

+2

@mathewfoscarini 사실이 아닙니다. http://stackoverflow.com/a/6666554/1319787 –

+0

멋지 네요, Core.php에서 5.3.2를보고 있었는데'define ('PHP_EOL', "\ n"); '모든 플랫폼에서. 내가 틀린 것을 읽지 않는 한. 여전히 PHP가 Windows 서버에 저장된 Linux 파일을 읽은 다음 내용이 폭발하면 (PHP_EOL) 폭발합니다. 소스 파일에는'\ r \ n '줄 바꿈이 포함되어 있지 않으므로? Windows는 텍스트 파일을 다시 포맷하지 않고 누락 된 '\ r'나누기를 추가합니다. – cgTag

관련 문제