PHP에서 ImageFontWidth () 함수는 내장 글꼴의 폭을 얻는 데 사용되며 GD 라이브러리에서 제공하는 이미지 처리 기능 중 하나입니다. 일반적 으로이 기능은 이미지를 생성 할 때 특히 텍스트의 레이아웃 위치를 정확하게 제어해야 할 때 매우 유용합니다. 그러나 CLI (Command Line Interface) 모드에서 ImageFontWidth ()를 사용하면 많은 개발자가 반환 된 값이 잘못되거나 함수 호출이 실패하는 것과 같은 예상치 못한 문제에 직면합니다.
환경 적 차이
웹 모드 (예 : Apache, Nginx) 및 CLI 모드에서 PHP의 작동 환경은 다릅니다. 특히 GD 라이브러리는 때때로 특정 환경 변수 또는 시스템 글꼴 파일에 의존합니다. CLI 모드에서는 이러한 종속성이 올바르게로드되지 않아 ImageFontWidth () 기능이 제대로 작동하지 않습니다.
GD 라이브러리 또는 글꼴 누락
ImageFontWidth ()는 GD 라이브러리의 내장 글꼴에 따라 다릅니다. PHP에서 실행되는 환경이 CLI 모드에 GD 라이브러리를 올바르게 설치하지 않거나 GD 라이브러리가 잘린 경우 내장 글꼴이 누락 된 경우 기능 호출이 실패합니다.
다른 PHP 버전 또는 구성 <br> 일부 PHP 버전에는 CLI 모드에서 기본적으로 일부 확장이 꺼져 있거나 구성 파일 (php.ini)이 다르므로 GD 라이브러리를 사용할 수 없거나 기능이 제한됩니다.
CLI에서 실행되는 간단한 테스트 스크립트를 작성할 수 있습니다.
<?php
$width = imagefontwidth(5);
var_dump($width);
일반적으로 ImageFontWidth (5)는 글꼴 크기가 5 (예 : 7) 인 너비를 반환해야합니다. false 또는 0이 반환되면 함수가 정상적으로 글꼴 너비를 얻을 수 없음을 의미합니다.
명령 줄에서 실행 :
php -m | grep gd
출력이 없으면 CLI에서 GD가 활성화되지 않음을 의미합니다. CLI에서 사용하는 php.ini 파일을 편집하고 GD 확장을 활성화해야합니다.
extension=gd
CLI 터미널을 다시 시작하고 다시 확인하십시오.
ImageFontWidth ()는 내장 글꼴 크기에 해당하는 정수 매개 변수 (1 ~ 5)를 전달해야합니다. 전달 매개 변수에 오류가 없는지 확인하십시오.
imagefontwidth(3); // 정당한
CLI에서 ImageFontWidth ( ) 대신 imageTtfbbox ()를 사용하는 것이 좋습니다. 이는 글꼴 크기를보다 정확하게 계산하고 내장 된 글꼴 대신 글꼴 파일에 의존 할 수있는 사용자 정의 글꼴 (예 : TTF 글꼴)을 사용해야하는 경우 CLI에서 imageTetfbbox ()를 사용하는 것이 좋습니다.
예:
<?php
$fontFile = '/path/to/font.ttf'; // 여기의 경로가 사용됩니다 m66.net 도메인 이름 교체 후URL체재:예를 들어 http://m66.net/fonts/font.ttf
$fontSize = 12;
$text = "테스트 텍스트";
$bbox = imagettfbbox($fontSize, 0, $fontFile, $text);
$width = abs($bbox[2] - $bbox[0]);
echo "텍스트 너비는입니다: " . $width;
GD 기능은 일반적으로 HTTP URL을 글꼴 경로로 사용하여 직접 지원하지 않으며 글꼴 파일은 로컬 서버 또는 파일 시스템에 저장해야합니다.
인터넷에서 글꼴 파일을 사용하려면 인용하기 전에 로컬로 다운로드하는 것이 좋습니다.
예제 (도메인 이름으로 대체) :