2014-04-29 1 views
3

문제가 있습니다. 변수에 문자열이 있습니다. 나는 explode 함수를 사용하여 배열로 문자열을 분할했다. 그러나 strlen 함수는 문자열을 배열 요소로 에코하고 strlen 함수에서 같은 문자열을 echo 할 때 다른 길이를 보여줍니다. 다음은 내 코드php strlen이 배열 요소의 길이가 다른 것을 보여줍니다.

echo $schedule = 'Early Evening 6pm-9pm Tuesday, Early Evening 6pm-9pm Wednesday'; 
    $scr = explode(",",$schedule); 
    $sc = array_map('trim', $scr); 
    print_r($sc); 
    echo strlen($sc[0]); 
    echo $sc[0]; 
    echo '<br />'; 
    echo 'string "Early Evening 6pm-9pm Tuesday" has '.strlen('Early Evening 6pm-9pm Tuesday'). ' chars<br />'; 
if(in_array('Early Evening 6pm-9pm Tuesday', $sc)){ echo 'yes'; } else { echo 'no'; } 

이며, 여기 출력 :

 Early Evening 6pm-9pm Tuesday, Early Evening 6pm-9pm Wednesday 

     Array ([0] => 
     Early Evening 6pm-9pm Tuesday [1] => Early Evening 6pm-9pm Wednesday 

     ) 
    151 //length of first element of array 
     Early Evening 6pm-9pm Tuesday //first element of an array 
     string "Early Evening 6pm-9pm Tuesday" has 29 chars 
no //I need yes here 
+0

이 코드를 실행할 때 예상되는 결과가 나옵니다. 주변 코드는 어떻게 생겼습니까? – Boldewyn

+0

끝나면 예가됩니까? 이 if 문에는 아무런 반응이 없습니다. if (in_array ('Early Evening 6 pm-9pm 화요일', $ sc)) {echo 'yes'; } else {echo 'no'; } – Riz

+0

다른 것 : http://sandbox.onlinephpfunctions.com/code/b5f94476ca37fa91c642572116ffe114f7401860 – AbraCadaver

답변

1

내가 당신의 문자열은 당신이 당신의 브라우저에서 표시되지 않는 HTML 태그가 포함 생각합니다.

시도들을 볼 수 있도록 세 번째 줄 끝에서

$sc = array_map('htmlspecialchars', $scr); 

를 추가하거나 출력 페이지 소스보기.

+0

우리는 우리의 해결책에 도달하고 있다고 생각합니다. 위의 코드를 사용하여 내 문자열과 함께 html 요소를 볼 수 있습니다. 배열 ([0] =>

Early Evening 6pm-9pm Tuesday [1] =>Early Evening 6pm-9pm Wednesday

). 이 html 요소를 제거하는 방법을 알려 주시면 간단한 "문자열 Early Evening 6 pm-9pm 화요일, Early Evening 오후 6시에서 오후 9시 수요일"을 얻을 수 있습니다. – Riz

+0

감사합니다. 이것은 나에게 많은 도움이되었습니다. strip_tags()를 사용하여 html 문자를 제거했습니다. – Riz

+0

제거하려면 간단히'$ sc = array_map ('strip_tags', $ sc);'을 4 행에 추가하고 (나를 먼저 추가 한'htmlspecialchars '로 줄을 제거하십시오. –