2011-05-09 2 views
1

누군가가 explode() 기능을 도와주세요. 나는 웹 페이지의 양식에서 $_POST[] 값을 읽습니다.이 값은 $user_id[$nro]".": "."$fname[$nro]".","."$sname[$nro]입니다.

이제 $_POST() 값을 폭발 시키려고 시도하지만 제대로 작동하지 않습니다. 나는 2 개 가지 방법으로 그것을 시도하지만, 한 행운 ...

첫 번째 방법 :

$uservalue = array(); 
$uservalue = $_POST['userlist']; 
foreach($uservalue as $line => $content) { 
    $uservalue[$line] = explode(',',$content); 
} 
print_r($uservalue); 

더 값이 새로운 $uservalue[]에 없습니다.

두 번째 방법 :

$uservalue = $_POST['userlist']; 
$uservalue = explode(":", $uservalue); 
$uservalue = explode(",", $uservalue); 

Warning: explode() expects parameter 2 to be string, array given in ... 

누군가가 나를 도울하고 올바르게 수행하는 방법을 알려 주 시겠어요?

감사합니다.

+0

HTML은 어떻게 생겼습니까? –

+0

그리고'$ _POST'는 정확히 무엇을 포함합니까? – Svish

+0

$ _POST : 1 : kevin, costner 예를 들어 – Henkka

답변

2

첫째, 당신은 중복이 인용 부호. 당신이 지금 가지고있는 것은 (내가 가정) : 더 적절한 될 것이라고 동안

echo "$user_id[$nro]".": "."$fname[$nro]".","."$sname[$nro]"; 

:

echo $user_id[$nro].": ".$fname[$nro].",".$sname[$nro]; 

즉, 당신이 인용 변수를 두 배로 할 필요가 없습니다.

두 번째로, 나는 변수를 세 구성 요소로 나누려고한다고 가정합니다. $_POST 접근 방식에 결함이있을 수 있습니다. 그 이유는 다음 세 가지 양식 요소에 값을 직접 저장할 수 있기 때문입니다.

<input type="hidden" name="user_id" value="<?php echo $user_id[$nro]; ?>" /> 
<input type="hidden" name="fname" value="<?php echo $fname[$nro]; ?>" /> 
<input type="hidden" name="sname" value="<?php echo $sname[$nro]; ?>" /> 

그런 다음 개별적으로 변수에 액세스 할 수 있습니다.

그러나, 귀하의 질문에 대답하기 위해, 당신은이처럼 문자열을 분할 할 수 있습니다 :

// Added for example, your value comes from $_POST 
$str = "1: kevin,costner"; 

list($user_id, $rest) = explode(": ", $str); 
// $user_id is a string, contains "1" 
// $rest is a string, contains "kevin,costner" 

// Explode the $rest again 
list($fname, $sname) = explode(",", $rest); 
// $fname is a string, contains "kevin" 
// $sname is a string, contains "costner" 

이제 당신은 당신의 가치를 유지 세 가지 변수가있다.

또한이 사이트의 특성상 도움이되는 답변을 수락하기 때문에 여기에서 도움을 얻으십시오!

+0

양식 드롭 메뉴의 값을 반향시키고 3 개의 다른 숨겨진 값으로 나눌 수 없기 때문에 "여분 따옴표"가 필요합니다. 정보를 가져와야하기 때문에 목록에있는 사용자 선택에 따라 대단히 고맙습니다. 이제 작동하게되었습니다. 감사합니다 – Henkka

+0

아니, 실제로 여분의 따옴표가 필요하지 않습니다, 그들은 중복됩니다. 코드를 제거 할 때 코드가 작동하지 않으면 주변 코드에 문제가있는 것입니다. 어느 쪽이든 그들은 필요하지 않습니다. –

+0

당신 말이 맞아요. 나는 그들을 필요로하지 않았다. – Henkka

2

Explode는 구분 기호를 기준으로 문자열을 분할하고 배열에 넣습니다.

첫 번째 예에서 $ uservalue = array(); $ _POST [ 'userlist']는 배열이 아닌 문자열입니다.

페이지에 뭔가를 올렸을 때이 코드의 결과를 게시 할 수 있습니까? (즉, 그냥 상단에이 권리를 스틱! 당신은 아마 그것이 렌더링 된 페이지에 좋은 보이지 않는 것 같이, 복사 및 붙여 넣기 소스를 보려는)

<?php 
print_r($_POST); 
?> 

OK, 당신이 무엇을하는지보고 (왜 BTW 아니라 별도의 것들보다, 하나 개의 변수에 모두를 가하고 있습니다 확실하지) 당신이 할 수 있습니다!

$userlist = $_POST['userlist']; 
$explode_on_colon = explode(":",$userlist); 
$uservalue[0] = $explode_on_colon[0]; 

$explode_on_comma = explode(",", $explode_on_colon) 

$uservalue[1] = $explode_on_comma[0]; 
$uservalue[2] = $explode_on_comma[1]; 

나는 것을 시도하지 않은,하지만 당신은 아이디어를 얻을. 불행히도 PHP에서는 explode(",", $explode_on_colon)[0]을 사용할 수 없으므로 임시 변수가됩니다.

+0

의 print_r ($ _ POST) 값은 다음과 같습니다. 1 : kevin, costner 내가 폭발 한 후 $ uservalue [0] = 1 $ uservalue [1 ] = kevin $ uservalue [2] = costner – Henkka

2

달성하려는 목표는 무엇입니까? 또한 $ _POST에 무엇이 들어 있습니까? 당신이 배열의 사용자를 원하는 경우

, 당신의 대답은 단순히 이것이다 : 그 페이지에있는 양식 값을 에코 할 때 (루프 필요) 모든

$userList = explode(',', $_POST['userlist']); 
0

그냥 나 한테 일어난 : 내가 한 줄에있는 모든 설정을 한 하지만

$aFromPOST = explode (',',$_POST['cattodel']); 
// $_POST['cattodel'] has this values s,d,e,i 

근무하지 않았다 나는 두 개의 분리 된 라인에 배치했다 및 근무 ...하지만이 같은 이유를 몰라 그 작동 ...

$sPOST= $_POST['cattodel']; // $_POST['cattodel'] has this values s,d,e,i 
$aFromPOST = explode (',',$sPOST); 
관련 문제