真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php轉(zhuǎn)化smiles為分子式

近來(lái)在使用PHP進(jìn)行結(jié)構(gòu)式搜索的時(shí)候,發(fā)現(xiàn)獲取到smiles無(wú)法進(jìn)行查詢操作,然后想到了轉(zhuǎn)化為分子式的操作。主要是用在有機(jī)物。

創(chuàng)新互聯(lián)主營(yíng)藍(lán)田網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),藍(lán)田h5微信平臺(tái)小程序開(kāi)發(fā)搭建,藍(lán)田網(wǎng)站營(yíng)銷推廣歡迎藍(lán)田等地區(qū)企業(yè)咨詢

困難一:我在smiles 上利用正則匹配C,O。遇到了問(wèn)題就是其他元素也有C字母,所以無(wú)法正確去掉C

解決:我只用原來(lái)的smiles來(lái)分析有機(jī)物的組成,然后我按照有機(jī)物的結(jié)構(gòu),單獨(dú)找出來(lái)C,O的數(shù)量,其余元素,簡(jiǎn)單統(tǒng)計(jì)一下放在后面就好了。主要分為三部分,C數(shù)目,O數(shù)目,其他元素

實(shí)現(xiàn);1.前臺(tái)獲取的smiles,符合相應(yīng)的規(guī)則

    2.php處理

    

                                        $Cnum='';
					$Onum='';
					//print($smiles."原來(lái)的");
					$find=array("=","#",".","1","[","]","(",")");
					$replace = array("");
					$smiles=str_replace($find,$replace,$smiles,$j);
					//print($j);
					//ECHO '/n';
					$ChemElement= array("Li","Be","Na","Mg","Al","Si","Cl","Br","Ca","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Gc","Ag","Au");
					foreach($ChemElement as $value){
						//print($value);
						$k_x=substr_count($smiles,$value);
						if($k_x>0){
							$k_x=$k_x==1?'':$k_x;
							//str_replace($value,'',$smiles);
							$smiles_new.=$value.$k_x;
						}
					}
					$k_c=substr_count($smiles,'C');
					//print('C個(gè)數(shù)'.$k_c);
					$i_c=preg_match_all('/C[a-z]/m',$smiles);
					//print('非碳個(gè)數(shù)'.$i_c);
					$j_c=$k_c-$i_c;
					//print_r('碳個(gè)數(shù)'.$j_c);
					//$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count);
					//print($smiles);
					//print('替換次數(shù)'.$count);
					$k_o=substr_count($smiles,'O');
					//print('O個(gè)數(shù)'.$k_o);
					$i_o=preg_match_all('/O[a-z]/m',$smiles);
					//print('非氧個(gè)數(shù)'.$i_o);
					$j_o=$k_o-$i_o;
					//$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count);
					//print($smiles);
					//print('替換次數(shù)'.$count);
					if($j_c>0){$j_c=$j_c==1?'':$j_c;$Cnum='C'.$j_c;}
					if($j_o>0){$j_o=$j_o==1?'':$j_o;$Onum='O'.$j_o;}
					$smilesPara = $Cnum.$Onum.$smiles_new;
					

					
結(jié)果:基本上可以解決一般意義上的分子式,當(dāng)然元素我沒(méi)有寫(xiě)全,我認(rèn)為常用的寫(xiě)一下就好,本來(lái)就是為了搜索,不常見(jiàn)的物質(zhì),化學(xué)品庫(kù)里也沒(méi)有。

這里推薦一下 斯芬克斯的PHP搜索引擎,很不錯(cuò)。

文章題目:php轉(zhuǎn)化smiles為分子式
本文URL:http://weahome.cn/article/jjjcpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部