문제

나는 PHP에서 최고가 아니며 누군가가 도울 수 있다면 매우 감사 할 것입니다. 기본적으로 나는 데이터 피드의 각 라인을 구문 분석하고 각 "|"사이에 각 정보를 가져와야합니다. - 그런 다음 데이터베이스에 추가 할 수 있습니다. Explode를 사용하여 "|"S간에 정보를 얻을 수 있다고 생각하지만 텍스트 파일에서 각 줄을 단수로 구문 분석하는 데 약간의 도움이 필요합니다. 더 간단하게 만들기 위해서는 변수의 각 라인을 사용해야합니다. TextRea와 양식을 사용하여 변수에 컨텐츠를 제출합니다. 모든 도움이 크게 감사드립니다!

도움이 되었습니까?

해결책

파일을 다양한 라인 배열로 읽고 모든 분할을 수행 할 수 있습니다.

$lines = file("filename");
foreach($lines as $line) {
    $parts = explode("|", $line);
    // do the database inserts here
}

당신이 말했듯이 (예 : file_get_contents ()와 같은 것들과 함께 모든 텍스트를 변수에 이미 가지고 있다면 먼저 n에서 폭발 한 다음 위와 동일한 foreach 문을 수행 할 수 있습니다.

다른 팁

Textarea 게시물을 읽는 경우 Newline 문자를 분리기로 사용하여 Explode 기능을 사용하여 변수의 각 "선"을 배열의 새로운 요소로 가져 오면 배열 요소를 폭발시킬 수 있습니다.

$sometext = "balh | balh blah| more blah \n extra balh |some blah |this blah";

$lines = explode("\n", $sometext);
foreach($lines as $oneLine)
{
    $lineElements[] = explode("|", $oneLine);
}

그런 다음 2D 배열의 Elems가 있습니다.

파일을 읽는 경우 여기에 문서화 된 파일 함수를 사용할 수 있습니다.

http://us2.php.net/manual/en/function.file.php

파일의 각 줄을 배열의 요소로 가져옵니다.

CSV 형식을 자동으로 감지 할 수있는 준비된 PHP 구문 분석 라이브러리가 있습니다.

예시:

$reader = new Dfp_Datafeed_File_Reader();
$reader->setLocation('test.csv');

foreach ($reader AS $record) {
    print_r($record);
}

다운로드 할 수 있습니다 여기, 그리고 문서가 있습니다 여기.

파일이 작 으면 사용할 수 있습니다 파일 () to 요소 당 한 줄의 배열로 읽으십시오.

실패하면 루프를 사용하여 파일을 읽으십시오 fgets ()

$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
   $buffer = fgets($handle, 4096);
   echo $buffer;
}
fclose($handle);

폭발을 사용하여 둘 다 얻을 수 있습니다.

$myFile = "File.txt";
$fh = fopen($myFile, 'r');
$data = fread($fh);
fclose($fh);
$newLines = explode("\n",$data);

foreach($newLines as $s)
{
  $parsed = explode("|",$s);
  foreach($parsed as $item)
  {
    // do your db load here
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top