无需Composer安装PHP版Tesseract OCR及XAMPP部署求助
嘿,这事儿我刚好折腾过,给你一步步捋清楚——不用Composer装PHP版Tesseract OCR,还能在XAMPP上跑起来做Web应用,包你能搞定!
1. 先搞定Tesseract OCR引擎本身
PHP的Tesseract库只是个绑定工具,核心得先装官方的Tesseract引擎:
- Windows:下载官方安装包(选对应系统版本),安装时记得勾选「Add to PATH」;要是漏选了,手动把安装目录(比如
C:\Program Files\Tesseract-OCR)加到系统环境变量的PATH里。 - Linux:用包管理器直接装,Debian/Ubuntu跑
sudo apt-get install tesseract-ocr,CentOS/RHEL用sudo yum install tesseract。 - Mac:用Homebrew执行
brew install tesseract就行。
装完后打开终端/命令行,输入tesseract --version,能输出版本号就说明引擎装好了。
2. 手动安装PHP的Tesseract绑定库(不用Composer)
我们用php-tesseract-ocr这个常用的绑定库,手动操作:
- 下载这个库的源码压缩包(直接搜就能找到),解压后得到带
src目录的文件夹。 - 把解压后的文件夹放到XAMPP的项目目录里(比如
htdocs/your-project/libs),或者PHP的扩展目录也行。 - 在你的PHP脚本里,用
require_once引入库的核心文件,比如require_once 'libs/php-tesseract-ocr/src/TesseractOCR.php';。
3. 配置XAMPP环境(关键步骤!)
确保XAMPP的PHP能找到Tesseract引擎和绑定库:
- Windows用户:要是安装Tesseract时没加PATH,得在PHP脚本里指定引擎路径,比如实例化时加
->executable('C:\Program Files\Tesseract-OCR\tesseract.exe')。 - 所有系统:如果绑定库放在项目外,修改XAMPP的
php.ini文件,找到include_path项,把绑定库的路径加进去,比如include_path = ".;C:\xampp\php\pear;C:\path\to\php-tesseract-ocr\src",改完重启XAMPP的Apache服务。
4. 写个测试Web应用试试手
在XAMPP的htdocs里新建ocr-app文件夹,放两个文件:
index.html(上传图片的表单)
<!DOCTYPE html> <html> <head> <title>PHP Tesseract OCR 测试</title> </head> <body> <h1>上传图片识别文字</h1> <form action="ocr-process.php" method="post" enctype="multipart/form-data"> <input type="file" name="image" accept="image/*" required> <button type="submit">开始识别</button> </form> </body> </html>
ocr-process.php(处理识别的脚本)
<?php // 引入Tesseract绑定库 require_once 'libs/php-tesseract-ocr/src/TesseractOCR.php'; use thiagoalessio\TesseractOCR\TesseractOCR; // 处理上传的图片 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) { $uploadDir = 'uploads/'; if (!file_exists($uploadDir)) { mkdir($uploadDir, 0777, true); } $uploadFile = $uploadDir . basename($_FILES['image']['name']); if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadFile)) { try { // 实例化TesseractOCR,Windows用户记得指定executable路径 $ocr = new TesseractOCR($uploadFile); // 识别中文的话加这句:->lang('chi_sim') $text = $ocr->run(); echo "<h2>识别结果:</h2>"; echo "<p>" . nl2br($text) . "</p>"; } catch (Exception $e) { echo "识别出错:" . $e->getMessage(); } } else { echo "图片上传失败!"; } } ?>
重启XAMPP的Apache,打开浏览器访问http://localhost/ocr-app/index.html,上传一张带文字的图片,就能看到识别结果啦!
一些小提醒
- 确保
uploads文件夹有写入权限,不然图片传不上去。 - 识别中文/其他语言,要先装对应语言包:比如Windows下下载
chi_sim.traineddata,放到Tesseract安装目录的tessdata文件夹里。 - 要是遇到「找不到tesseract命令」的错误,检查系统PATH里有没有Tesseract的路径,或者在PHP脚本里手动指定executable路径。
内容的提问来源于stack exchange,提问作者Kaustav Dey




