FileInfoDetector¶
Detector implementation using PHP's FileInfo extension.
Synopsis¶
namespace Ducks\Component\EncodingRepair\Detector;
final class FileInfoDetector implements DetectorInterface
{
public function detect(string $string, array $options): ?string;
public function getPriority(): int;
public function isAvailable(): bool;
}
Description¶
Uses finfo class with FILEINFO_MIME_ENCODING to detect character encoding.
Priority: 50 (fallback detector)
Requirements: ext-fileinfo (optional)
Methods¶
detect()¶
Detects encoding using FileInfo extension.
public function detect(string $string, array $options): ?string
Parameters:
- $string - String to analyze
- $options - Detection options
- finfo_magic: string - Custom magic database file path
- finfo_flags: int - FileInfo flags (default: FILEINFO_NONE)
- finfo_context: resource - Stream context
Returns: Detected encoding (uppercase) or null if detection fails or returns 'binary'
Example:
use Ducks\Component\EncodingRepair\Detector\FileInfoDetector;
$detector = new FileInfoDetector();
$encoding = $detector->detect('Café', []);
echo $encoding; // "UTF-8"
getPriority()¶
Returns detector priority.
public function getPriority(): int
Returns: 50
isAvailable()¶
Checks if FileInfo extension is available.
public function isAvailable(): bool
Returns: true if finfo class exists, false otherwise