> 백엔드 개발 > PHP 튜토리얼 > 这JB代码终究想干嘛

这JB代码终究想干嘛

WBOY
풀어 주다: 2016-06-13 11:55:23
원래의
788명이 탐색했습니다.

这JB代码到底想干嘛?

<br />$ln = $this->lengthIndicator($this->QR_MODE_NM, $this->version);<br />$dif = $this->estimateBitsModeNum($run) + 4 + $ln<br />			+ $this->estimateBitsMode8(1)         // + 4 + l8<br />			- $this->estimateBitsMode8($run + 1); // - 4 - l8<br />			if ($dif > 0) {<br />				return $this->eat8();<br />			}<br /><br />function estimateBitsModeNum($size) {<br />		$w = (int)$size / 3;<br />		$bits = $w * 10;<br />		switch($size - $w * 3) {<br />			case 1: {<br />				$bits += 4;<br />				break;<br />			}<br />			case 2: {<br />				$bits += 7;<br />				break;<br />			}<br />			default: {<br />				break;<br />			}<br />		}<br />		return $bits;<br />	}<br /><br />function estimateBitsMode8($size) {<br />		return $size * 8;<br />	}<br /><br /><br />function lengthIndicator($mode, $version) {<br />		if ($mode == $this->QR_MODE_ST) {<br />			return 0;<br />		}<br />		if ($version <= 9) {<br />			$l = 0;<br />		} elseif ($version <= 26) {<br />			$l = 1;<br />		} else {<br />			$l = 2;<br />		}<br />		return $this->lengthTableBits[$mode][$l];<br />	}<br /><br />$lengthTableBits = array(<br />		array(10, 12, 14),<br />		array( 9, 11, 13),<br />		array( 8, 16, 16),<br />		array( 8, 10, 12)<br />	);
로그인 후 복사

------解决方案--------------------
不懂二维码的原理,看代码能看懂么?
Numeric mode 数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits    对应你的estimateBitsModeNum
不同version下编码的位数:
对应你的lengthIndicator

我也不懂,帮你找的资料: http://coolshell.cn/articles/10590.html#jtss-tsina

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿