간단한 str_replace
을 수행하는 데 문제가 있습니다.
작동하는 문자열에서 모든 쉼표를 제거하려고합니다. 그러나 문자열을 다시 변경하려고하면 쉼표가 다시 나타납니다. 내가이 문제를 일으키지 않았 음을 확인하기 위해 코드를 리팩토링했습니다.HTML 엔터티로 대체 된 문자가 다시 나타납니다.
어쨌든 여기에 내 코드가 있습니다. 아무도 버그를 발견 할 수 있습니까?
$delim=remDelim(fgets($fo));
# echo 'before : '.htmlspecialchars($delim);
$delime =str_replace(",",",",$delim);
echo 'after : '.htmlspecialchars($delime);
$delimed = str_replace("<","",$delime);
echo $delimed.'<br />';
example output:
Jose, jr to Jose, jr to Jose, jr
내 문자열이 어떻게 든 변환되지 않고 있습니다. 나는 이름이 섞여서 가장 마지막에 공예품을 만들기 위해 첫 번째 문자열을 사용했을 가능성이 가장 높다고 말할 것입니다. 그러나 아아 나는 그것이 사실이 아님을 알 수있다.
가 적어도 한 번 나는 모든 사람들이 하나 :)의 속임수됩니다 추측 - 하나 (파이어 폭스에서 U 예를 들어, Ctrl 키) 페이지의 소스를 일반 텍스트 모드 (
header('Content-type: text/plain');
)에 브라우저를 강제하거나 볼 수 있습니다. – kapa그의 대답은 좋다. 유일한 차이점은 마지막 'echo'를 사용하면'htmlspecialchars()'를 사용하지 않는다는 것입니다. 출력되는 것은','이지만, HTML이기 때문에 쉼표로 표시됩니다. 브라우저에서 HTML 소스를 확인하십시오. [또는 코드의 데모를 확인하십시오.] (http://codepad.viper-7.com/gY45Dr) – kapa
12MB 페이지에서 작동하지 않습니다 (Firefox 또는 apache/php가 좋지 않음). 대용량 페이지를 처리하고 응답을 일시 중단하고이 페이지를로드하는 데 최대 2GB의 RAM을 사용했습니다. 나는 소스 ,을 보지 못했습니다. 그런 다음 12kb 페이지로 시도했습니다. 결국 소스에 ,이 표시되었습니다. 그것은 내가 전에 컴퓨터에서 본 이상한 행동이었다. 그리고 이것이 응답 한 ppl (항상 한 줄 입력 = <1kb 사용)에서 항상 작동하는 이유입니다. – YoYoMa