내 목표는 temp.php를 열고 ### (줄 종결 자)로 폭발 한 다음 %% (필드 종결 자). 특정 라인의 특정 필드를 변경 한 다음 모든 것을 다시 집어 넣고 저장하십시오.원시 csv 데이터가있는 파일 열기, 배열 및 하위 배열 분해, 줄 바꾸기 및 PHP 팩 저장 및 다시 작성
여기 놀이에 몇 가지 변수가있다 : 내가 대상 필드에 배치 할
row
= 대상 행 번호
target
= 대상 필드/열 번호
nfv
= '정보'는
나는 희망하는 행에 도착할 때까지 카운터 $i
을 사용하여 계산합니다. 그런 다음 카운터 $j
을 계산하여 원하는 필드/타겟에 도달합니다. 지금까지 이것은 잘못된 implode 인수에 대한 오류를 제공하거나 데이터를 전혀 저장하지 않습니다. Im는 틀린 한 쌍의 물건이있다라고 확신한다. 그러나 나는 좌절되고, 잃어버린다.
<?
$row = $_GET['row'];
$nfv = $_GET['nfv'];
$target = $_GET['target'];
$data = file_get_contents("temp.php");
$csvpre = explode("###", $data);
$i = 0;
$j = 0;
foreach ($csvpre AS $key => $value){
$i++;
if($i == $row){
$info = explode("%%", $value);
foreach ($info as $key => $value){
$j++;
if($j == "$target"){
$value = $nfv;
}
}
$csvpre[$key] = implode("%%", $info);
}
}
$save = implode("###", $csvpre);
$fh = fopen("temp.php", 'w') or die("can't open file");
fwrite($fh, $save);
fclose($fh);
header("Location: data.php");
?>
누군가가이 문제가 무엇인지 알 수 있다면 자세한 내용을 자세히 설명하면 작동하지 않는 이유를 알 수 있습니다. 여기
는 다음과 같은 작업을해야 테스트1%%4%%Team%%40%%75###2%%4%%Individual%%15%%35###3%%4%%Stunt Group%%50%%150###4%%4%%Coed Partner Stunt%%50%%150###5%%4%%Mascot%%15%%35###6%%8%%Team%%40%%75###7%%8%%Stunt Group%%50%%150###8%%8%%Coed Partner Stunt%%50%%150###9%%3%%Team%%40%%75###10%%1%%Team%%40%%75###11%%1%%Solo%%15%%35###12%%1%%Duet%%50%%150###13%%2%%Team%%50%%50###14%%2%%Solo%%15%%35###15%%2%%Duet%%50%%150###16%%8%%Individual%%15%%35###
아직 질문하지 않았습니까? http://stackoverflow.com/questions/1629230/invalid-argument-when-imploding-in-php – cletus
도움이되지 않을까 궁금합니다 ... 값에 %% 구분 기호가 있음을 알고 있다면 왜 단순한'str_replace ("%% $ target %%", "%% $ nfv %% , $ file_as_string)'? – Anthony
@anthony, $ target은 필드의 값이 아니라 필드의 값입니다 –