PHPExcel 사용 시 - 제거된 레코드: /xl/worksheets/sheet2.xml 부분의 하이퍼링크

PHPExcel 라이브러리로 하이퍼링크있는 xlsx 를 만들고 
그 파일을 엑셀 365(2022년 7월 06일)에서 읽을 경우 

제거된 레코드: /xl/worksheets/sheet2.xml 부분의 하이퍼링크

이런 에러가 발생될 경우

체크해봤는데
xlsx 파일의 압축을 풀고 
xl\worksheets\_rels 
속에서 
sheet2.xml.rels   (sheet2 가 같다)
부분을 확인

URL부분만 추려서 내용을 체크해봤는데


1. 엑셀플그램에서 저장시 도메인은 소문자로 바뀐다. (본래 도메인은 대소문자 구분이 없이 사용가능. 구분 자체를 안함)
2. URL이 잘못되서
https://www.instagram.com/https://Instagram.com/xxxxx 
이런 형식이면
https://www.instagram.com/https:/Instagram.com/xxxxx 
처럼 바뀐다.
3. URL 끝에 # 만 붙어있으면 제거된다.
4. http://blog.naver.com 처럼 되어있으면  (경로가 없는 경우)
http://blog.naver.com/ 처럼 뒤에 / 가 붙는다.
5. 최대한 urlencode 처리를 해준다.
쿼리스트링에 [0] 이 있으면 %5b0%5d 처럼 바뀌어서 저장됨
6. 도메인에 빈칸이 있다면 잘못된 URL로 보고 제거한다. <--- 이부분이 문제인것 같음


filter_var($text,FILTER_VALIDATE_URL) !== false

로 URL인지를 체크해서 동작하도록 함.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자