implode 로 넘어온 문자열을 explode 로 처리 했는데

implode 로 넘어온 문자열을 explode 로 처리 했는데

QA

implode 로 넘어온 문자열을 explode 로 처리 했는데

본문

1888875639_1635609201.5952.png

 

implode 로 넘어온 문자열을 explode 로 처리 한 후 for을 돌리는데

값이 안나오네요.. 사람들 이름이 출력이 되어야 하는데요

 

print_r 로 확인하면 값은 잘 넘어오더군요..

 

1888875639_1635609540.7676.png

 

엑셀로 다운 받고 있는데 $i 를 1부터 해야 하는데 이것도 문제네요..

이걸 1부터 해버리면 배열에서 0 번째 사람이 빠질텐데..

 

엑셀 다운 받으면 사람수 만큼 칸은 생성이 되는데 왜 이름이 안나올까요 ..

 

---넘기는 페이지---


<?php
    $excel_name = array();
    for ($i=0; $row=sql_fetch_array($result); $i++) {
        
        if($row['bar_name2']) { // 수령자가 있으면 수령자 이름으로
            $excel_name[] = $row['bar_name2'];
        } else { // 수령자가 없으면 주문자 이름으로
            $excel_name[] = $row['bar_name'];
        }
    } 
    $result_name = implode(',', $excel_name);
    ?>
    
    <h2>편지 출력</h2>
    <div class="container">
        <div class="box">
            <form name="frm_excel" id="frm_excel" action="./barcode_letter_paper_down.php" method="post">
            <textarea name="result_name" id="result_name" style=""><?php echo $result_name ?></textarea>
... 생략

 

---엑셀 출력 페이지---


// 내용 출력
$result_name = explode(',', $_POST["result_name"]);
for($i = 0; $i < count($result_name); $i++) {
    $barname = $result_name;
    
    $str = array("/프","/AS","/as",); 
    $barname = str_replace($str,'',$barname);
    $barname = preg_replace("/[^a-zA-Z가-힣ㄱ-ㅎㅏ-ㅣ*]/u", " ", $barname);
    $barname = rtrim($barname);
    
    $name_chk = preg_match("/[\xA1-\xFE][\xA1-\xFE\*]/", $barname);
    if($name_chk == 1) {
        $barname = $barname.'님';
    } else {
        $barname = $barname;
    }
    
    
    // 셀 병합
    $objPHPExcel->setActiveSheetIndex(0) ->mergeCells('A'.$i.':J'.$i) -> setCellValue('A'.$i, $barname);
    // 셀 크기
    $objPHPExcel->setActiveSheetIndex(0)->getRowDimension($i)->setRowHeight(195);
    // 폰트
    $objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getFont()->setName('맑은 고딕')->setSize(18);
    // 폰트 정렬
    $objPHPExcel->setActiveSheetIndex(0)->getStyle('A'.$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

}

이 질문에 댓글 쓰기 :

답변 3

$result_name = explode(',', $_POST["result_name"]);
for($i = 0; $i < count($result_name); $i++) {
    $barname = $result_name[ $i];

또는

$i=1;

foreach( $result_name as $barname) {
   // $barname = $result_name[ $i];

   ...

 

$i++;

}

답변을 작성하시기 전에 로그인 해주세요.
전체 253
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT