PHP와 Cron Job을 사용하여 정기적으로 스타일 시트를 동적으로 업데이트합니다 (여러 가지 이유로 Javascript는 옵션이 아닙니다). 이것은 내가 크론 작업으로 실행 해요 스크립트입니다 :Cron Job이 PHP 배열을 인식하지 못합니다.
<?php
$colorstack = json_decode(file_get_contents("colors.txt"));
$color = array_shift($colorstack);
file_put_contents("color.txt",$color);
array_push($colorstack, $color);
$colors = json_encode($colorstack);
file_put_contents("colors.txt", $colors);
$iconstack = json_decode(file_get_contents("icons.txt"));
$icon = array_shift($iconstack);
file_put_contents("icon.txt",$icon);
array_push($iconstack, $icon);
$icons = json_encode($iconstack);
file_put_contents("icons.txt", $icons);
print_r ($colorstack);
print_r ($iconstack);
?>
그것은 두 개의 텍스트 파일 (16 진수 코드 세트 및 이미지 파일 이름의 집합)에서 문자열을 반환하고 배열로 넣습니다. 그런 다음 각 배열에서 첫 번째 값을 가져 와서 두 번째 텍스트 파일 세트 (css.php로 읽음)에 쓴 다음 해당 값을 배열 끝에 다시 붙여 텍스트 파일에 다시 씁니다.
스크립트가 실행될 때마다 스타일 시트에 대한 새로운 색상 16 진 코드와 이미지 파일 이름을 작성하고 이전 파일을 루프의 뒷면으로 보냅니다. 나는 그것을 테스트했고, 브라우저에서 정상적으로 작동한다.
문제는 Cron 작업이 스크립트를 실행하지 않는다는 것입니다.) (예상합니다 array_push :
경고 : array_shift() 매개 변수 1가 null 줄에 /path/to/file.php 3
경고 지정된 배열이 될 것으로 기대 대신에, 나는 다음과 같은가 계속 매개 변수 1 배열로,/경로/to/file.php 5 행에 주어진 null
등등. 분명히 문제는 Cron Job이 배열로 $_____stack = json_decode(file_get_contents("_____.txt"));
을 파싱하지 않는다는 것입니다. 그리고 나는 explode()에서도 똑같이 할 것이라고 가정합니다; JSON 대신에
텍스트 파일의 내용을 동일한 문제가 발생하지 않는 배열로 가져 오는 비교적 깔끔한 방법이 있습니까?
cron 작업이 시작되는 디렉토리가 동일한 디렉토리 일 가능성이 없습니다. getcwd()를 사용하여 브라우저의 현재 디렉토리를 확인하고 cron 작업의 함수 출력과 비교하십시오. – CBusBus