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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
2.25
2.27
2.28
3.1
3.2
3.3
3.4
3.5
3.7
3.9
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.27
3.28
3.29
3.30
3.31
4.1
4.2
4.3
4.4
4.5
4.6