이것은 매우 간단해야하지만,이 코드를 90 번 이상 실행하여 알아 내려고합니다. 어떤 도움이라도 대단히 감사하겠습니다!지구상에서 str_replace가 onclick 함수를 벗겨내는 이유는 무엇입니까?
다음은 문맥에 대한 전체 기능입니다. 나는 즉시 내가 뭔가 단순한는 $ replacewith 변수를 변경하면
$replacethis = '(<a href=\"([0-9]{2})\\.htm\">)';
$linkArr = [];
$lessonNo = preg_match_all($replacethis, $originalcontent, $linkArr);
for($x = 0; $x < count($linkArr[1]); $x++) {
$replacethis = '<a href="'.$linkArr[1][$x].'.htm">';
$replacewith = '<a style="cursor:pointer;" onclick="gotoScrollExercise('. $linkArr[1][$x] .'); return false;">';
$originalcontent = str_replace($replacethis, $replacewith, $originalcontent);
}
, 나는 아무 문제가 없지만 : 나는
<a style="cursor:pointer;" onclick="gotoScrollExercise(04); return false;">
과 기능을
<a href="04.htm">
을 대체하는 것을 시도하고있다 onclick 함수를 추가하면 문자열의 해당 부분 만 무시됩니다. 일을 해달라고
$replacewith = '<a id="blah" style="cursor:pointer;">';
예 :
$replacewith = '<a fdgdfgdf>';
$replacewith = '<a onclick="function()">';
왜 작동
예?
가 재생 될 예 :
$replacethis = '<a href="04.htm">';
$replacewith = '<a style="cursor:pointer;" onclick="gotoScrollExercise(04); return false;">';
$originalcontent = str_replace($replacethis, $replacewith, $originalcontent);
output is:
<a style="cursor:pointer;">
작은 따옴표로 묶은 문자열이 있으므로 작은 따옴표를 이스케이프 처리해야합니다. 작은 따옴표로 묶어서는 안되는 큰 따옴표를 이스케이프 처리합니다. 작은 따옴표를 이스케이프합니다. – chiliNUT
당신은 '0'에서 루프를 시작하고 regexes의 캡처 그룹은 항상 캡처 결과 배열 [0] 인덱스를 전체 일치 문자열로 만듭니다. 예 : 'var_dump ($ linkArr)'를 사용하면 얻은 것을 볼 수 있습니다. –
제안에 감사드립니다. marc,하지만 루프와는 아무 관련이 없습니다. 안녕하세요, 정규식의 출력에 만족합니다. 그리고 내가 error_log replacewith, 정확히 내가 원하는 방법입니다. 그것은 행복하지 않은 어려운 일일 것입니다. – olstearn