Heim >Backend-Entwicklung >PHP-Tutorial >如何用PHP代码实现这个Java代码所实现的。
<code>public static Map<bufferedimage string> loadTrainData() throws Exception { Map<bufferedimage string> map = new HashMap<bufferedimage string>(); File dir = new File("train"); File[] files = dir.listFiles(); for (File file : files) { map.put(ImageIO.read(file), file.getName().charAt(0) + ""); } return map; }</bufferedimage></bufferedimage></bufferedimage></code>
在尝试使用PHP写验证码识别,参考一个Java的代码。但是遇到这个不知道应该怎么用PHP写。
大概意思是打开目录中的图像,然后讲图像当做map的键,文件名做值。
然后我写了如下的代码,但是后面我不知道怎么办了。
<code> public function loadTrainData() { $data = array(); $path = "train/train1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $files[] = file_get_contents($path.$filename); } } closedir($handler); #code 这里应该怎么写,还是说有更好的写法去写这个函数 return $data; }</code>
<code>public static Map<bufferedimage string> loadTrainData() throws Exception { Map<bufferedimage string> map = new HashMap<bufferedimage string>(); File dir = new File("train"); File[] files = dir.listFiles(); for (File file : files) { map.put(ImageIO.read(file), file.getName().charAt(0) + ""); } return map; }</bufferedimage></bufferedimage></bufferedimage></code>
在尝试使用PHP写验证码识别,参考一个Java的代码。但是遇到这个不知道应该怎么用PHP写。
大概意思是打开目录中的图像,然后讲图像当做map的键,文件名做值。
然后我写了如下的代码,但是后面我不知道怎么办了。
<code> public function loadTrainData() { $data = array(); $path = "train/train1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $files[] = file_get_contents($path.$filename); } } closedir($handler); #code 这里应该怎么写,还是说有更好的写法去写这个函数 return $data; }</code>
你的 train
目录下的文件名大概都是这样的吧? A B C D ... 0 1 2 3
Java
的那段代码是遍历目录, 然后建一个Map
.
你PHP的代码应该类似于这样:
<code>$files[$filename] = file_get_contents($path.$filename);</code>
已解决。
<code>public function loadTrainData() { $path = "train/tran1/"; $handler = opendir($path); while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { $sampleMap[substr($filename, 0, 1)] = imagecreatefromjpeg($path.$filename); } } closedir($handler); return $sampleMap; } </code>