php – 解析包含图像数据的文本文件
发布时间:2020-12-13 13:49:34 所属栏目:PHP教程 来源:网络整理
导读:我已经能够使用 Imagemagick从 http://www.imagemagick.org读取文本文件中的数据. 我明白了 0,0: (255,255,0) #FFFFFF00 srgba(255,0)1,0)2,0)40,23: (162,167,32,24) #A2A72018 srgba(162,0.0941176)41,23: (255,0)42,166,48,40) #A2A63028 srgba(162,0.156
我已经能够使用
Imagemagick从
http://www.imagemagick.org读取文本文件中的数据.
我明白了 0,0: (255,255,0) #FFFFFF00 srgba(255,0) 1,0) 2,0) 40,23: (162,167,32,24) #A2A72018 srgba(162,0.0941176) 41,23: (255,0) 42,166,48,40) #A2A63028 srgba(162,0.156863) 43,47,40) #A2A62F28 srgba(162,0.156863) 我对正则表达式不熟悉我将使用哪种表达方式 好吧,我有点想通了正则表达式 /rgba([0-9]{1,3},[0-9]{1,[0-9].[0-9]{1-9}/gi 但最后一部分与rgba()的小数部分不匹配. 好吧,我知道它已经有一段时间了,我不确定我是否应该开始一个新线程 但我已经想出如何删除以删除两个中间部分,所有括号 $fh = fopen("pcmanD.txt","r"); $fg = fopen("pcmanJ.txt","wt"); $new_array = ""; $parts = ""; while (!feof($fh)) { $line = fgets($fh); $lines[] = $line; $newword = ""; $match1 ="/:s?s?(s?s?d+,s?s?d+,s?s?d+)s?s?#[a-zA-Z0-9]{6,8}s?s?srgba/"; $match2 ="/^ss?/"; $match3 = "/s(/"; $match4 = "/)/"; $match5 = "/[0-9]{1,0[^.]/"; $parts1 = preg_replace($match1,"",$line ); $parts2 = preg_replace($match2,$parts1 ); $parts3 = preg_replace($match3,",$parts2 ); $parts4 = preg_replace($match4,$parts3 ); $parts5 = preg_replace($match5,$parts4); echo "<pre>"; print_r($parts5); echo "</pre>"; fwrite($fg,$parts5); } fclose($fg); fclose($fh); 但是这个代码出现了新的问题,我在浮点上得到了两倍或三倍 $thisisit[] = ""; $thisisit2[] = ""; $countThis = 0; $fh = fopen("sometext.txt","r"); $new_array = ""; $parts = ""; while (!feof($fh)) { $line = fgets($fh); $line2 = $line; $newword = ""; $match1 ="/^s*?[d]+,[d]+/"; $parts1 = preg_match($match1,$line,$regs); foreach($regs as $key => $lame) { $thisisit[] = $lame; } $match2 ="/(?:(d{1,d{1,))(d{1,[01][.]?[d]*)/"; $parts2 = preg_match($match2,$line2,$regs2); foreach($regs2 as $key2 => $lame2) { $thisisit2[] =$lame2; } $countLame = count($thisisit); } echo "</script>"; $newCounter = 0; for($i = 0; $i < (500); $i++) { echo $thisisit[$i] . "<br />"; echo $thisisit2[$newCounter] . "<br />" ; $newCounter = $newCounter +4; } fclose($fh); 这是我正在处理的文本文件中的一些文本 42,23,162,0.156863 43,0.156863 44,170,67,0.219608 45,0.156863 46,0.219608 47,37,0.117647 48,0.0941176 86,163,40,0.12549 87,160,164,0.164706 88,188,190,122,0.352941 86,24,233,234,197,0.486275 87,251,250,1 88,1 89,1 > '0,0)'.match(/^([^:]+) *: *(([^)]+))/) [ '0,0)','0,0','255,index: 0,input: '0,0)' ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |