威尼斯www.9778.com-威尼斯正版官方网站

PHP实现基于文本的莫斯电码生成器

日期:2020-03-21编辑作者:Web前端技术

本文由码农网 – 风满楼原创翻译,转发请看清文末的转发必要,款待到场大家的付费投稿安排!

近些日子遭受四个基于输入文本生成摩斯代码音频文件的须要。几番找寻无果之后,作者调整本人编写叁个生成器。

介绍

本身多年来遇见贰个基于输入文本生成摩斯代码音频文件的急需。几番寻觅无果之后,笔者决定自个儿编写一个生成器。

下载源代码 – 2.63 KB

图片 1

因为自个儿盼望经过web的不二等秘书技访问小编的摩斯代码音频文件,所以本身调整选择PHP作为本人主要的编制程序语言。上边的截图展现了三个早先生成莫斯代码的网页。在下载的zip文件中,满含了用来提交文件的网页以致用于转移和表现音频文件的PHP源文件。借使您想测量检验PHP代码,你须要将网页和相关的PHP文件复制到启用了PHP的服务器上。

对于广大人的话,莫斯代码就像一些老电影中显现的那么,便是一些“点”和“横线”的行列,只怕三番四次串的哔哔声。显著,要是您想用Computer代码来生成莫斯代码,那样的刺探是遥远相当不够的。那篇作品将会介绍生成莫斯代码的因素,怎么样生成WAVE 格式的音频文件,以致如何用PHP将莫斯代码转形成音频文件。

因为本身希望通过web的章程访谈作者的摩斯代码音频文件,所以本身决定接收PHP作为笔者最首要的编制程序语言。上边的截图显示了贰个方始生成莫斯代码的网页。在下载的zip文件中,蕴涵了用来提交文件的网页以至用于转移和显示音频文件的PHP源文件。若是你想测量试验PHP代码,你须要将网页和有关的PHP文件复制到启用了PHP的服务器上。

莫斯代码

莫斯代码是一种文本编码情势。它的优点是编码方便,并且用人耳就能够有支持的解码。本质上,是经过音频(大概有线电频)的开和关,进而造成或短或长的旋律脉冲,日常称作点(dot)和线(dash),也许用有线电术语称作“嘀”和“嗒”。用今世数字通讯术语,莫斯代码是一种振幅键控(amplitude shift keying ,ASK)。

在莫斯代码中,字符(字母,数字,标点符号和特殊符号)被编码成三个“嘀”和“嗒”的行列。所感到了把公文转形成莫斯代码,大家先是要规定哪些来表示“嘀”和“嗒”。贰个很明显的抉择便是,用0代表“嘀”,用1象征“嗒”,恐怕反过来。不幸的是,莫斯代码应用的是可变长编码方案。所以我们也亟要求使用一种可变长体系,或许使用一种办法,把多少打包成一种计算机内部存款和储蓄器通用的固化位宽(fixed bit-size)的格式。此外,供给极其注意的是,莫斯代码并不区分字母大小写,并且对一些特殊符号无法编码。在大家以此达成中,未定义的字符和符号将会被忽略。

在此个连串中,内存占用并不是二个亟待非常酌量的问题。所以,大家提出四个简约的编码方案,即用“0”来表示每一种“嘀”,用“1”来代表每种“嗒”,並且把他们坐落于一个字符串关联数组中。定义莫斯代码编码表的PHP代码就像上边那样:

$CWCODE = array ('A'=>'01','B'=>'1000','C'=>'1010','D'=>'100','E'=>'0',
     'F'=>'0010','G'=>'110','H'=>'0000','I'=>'00','J'=>'0111',
     'K'=>'101','L'=>'0100','M'=>'11','N'=>'10', 'O'=>'111',
     'P'=>'0110','Q'=>'1101','R'=>'010','S'=>'000','T'=>'1',
     'U'=>'001','V'=>'0001','W'=>'011','X'=>'1001','Y'=>'1011',
     'Z'=>'1100', '0'=>'11111','1'=>'01111','2'=>'00111',
     '3'=>'00011','4'=>'00001','5'=>'00000','6'=>'10000',
     '7'=>'11000','8'=>'11100','9'=>'11110','.'=>'010101',
     ','=>'110011','/'=>'10010','-'=>'10001','~'=>'01010',
     '?'=>'001100','@'=>'00101');

急需注意的是,要是您非常留意内存占用的话,上边的代码能够解释为位(bit)。给各样代码扩充三个最先位,就足以产生一个位的情势,各类字符就能够用二个字节来积累。同一时间,当拆解剖判末了编码的时候,要刨除起首位左侧的位(bit),进而赢得真正的变长编码。

就算不菲人并未发觉到,事实上“时间隔离”是概念莫斯代码的尤为重要要素,所以明白那或多或少是生成莫斯代码的基本点。所以,大家要做的首先件事,正是概念莫斯代码的内部码(即“嘀”和“嗒”)的岁月间隔。为了便于起见,我们定义贰个“嘀”的鸣响长度为一个日子单位dt,“嘀”和“嗒”之间的间隔也是二个时光单位dt;定义贰个“嗒”的长短为3个dt,字符(letters)之间的间距也是3个dt;定义单词(words)之间的区间是7个dt。所以,总结起来,大家的光阴世距表就疑似上面那样:

项目

时刻长度

dt

“嘀”/“嗒”之间的间隔

dt

“嗒”

3*dt

字符之间的间隔

3*dt

单词之间的间距

7*dt

在莫斯代码中,编码声音的“播放速度”经常用 单词数/分钟(WPM卡塔尔国来表示。由于英语单词有例外的长短,何况字符也可能有不相同数量的“嘀”和“嗒”,所以,从WPM转产生(音频)数字采集样本并非看上去那样轻巧。在一份被国际集团利用的方案中,采纳5个字符作为单词的平分长度,同不正常间,二个数字或标点被视作2个字符。那样,平均一个单词就是四17个时间单位dt。那样,借令你钦定了WPM,那么大家总的播放时间正是50 * WPM的小运单位/分钟,各个“嘀”(即一个时间单位dt)的尺寸等于1.2/WPM秒。这样,给出二个“嘀”的小时长短,其余因素的时辰长短非常轻易就能够总计出来。

你大概曾经注意到,在地方彰显的网页中,对于低于15WPM的选项,大家使用了“Farnsworth spacing”。那么那一个“Farnsworth spacing”又是个怎么样鬼?

当报务员学习用耳朵来解码莫斯代码的时候,他就能意识到,当播放速度变化的时候,字符现身的节拍也会跟着变化。当播放速度低于10WPM的时候,他能够从容的识别“嘀”和“嗒”,并且明白发送的哪个字符。但是当播放速度超越10WPM的时候,报务员的鉴定识别就能出错,他识别出来的字符会多于实际的“嘀”和“嗒”。当二个学学的时候习于旧贯低速莫斯代码的人,在管理急迅广播代码的时候,就能够现出难点。因为节奏变了,他无心的识别就能够出错。

为了然决那一个标题,“Farnsworth spacing”就被发明出来了。本质上来说,字母和符号的播报速度仍旧接纳高于15WPM的快慢,同期,通过在字符之间插入更加的多的空格,来使全部的播音速度下跌。那样,报务员即能够一个客观的快慢和音频来甄别各种字符,一旦有所的字符都学习达成,就能够增添快度,而接受员只须求加速识别字符的快慢就可以了。本质上的话,“Farnsworth spacing”这么些本事消除了旋律变化这么些主题素材,使接纳员能够急速学习。

所以,在漫天系统中,对于更低的广播速度,都统10%15WPM。相对应的,多少个“嘀”的尺寸是0.08秒,不过字符之间和单词之间的区间就不再是3个dit恐怕7个dit,而是进行的调动以适应全部进程。

对此广大人来讲,莫斯代码就如一些老电影中展现的那样,就是局地“点”和“横线”的行列,恐怕三回九转串的哔哔声。鲜明,倘令你想用电脑代码来生成莫斯代码,那样的理解是遥远相当不足的。那篇文章将会介绍生成莫斯代码的要素,怎样生成WAVE 格式的音频文件,以至怎么样用PHP将莫斯代码转形成音频文件。

生成声音

在PHP代码中,七个字符(即近年来数组的目录)代表一组由“嘀”、“嗒”和空白间距组成的莫斯声音。大家用数字采集样板来构成音频类别,並且将其写入到文件中,同一时候加多适当的头音信来将其定义成WAVE格式。

生成声音的代码其实一定轻易,你能够在档案的次序中PHP文件中找到它们。笔者发觉定义二个“数字振荡器”卓殊有益。每调用三回osc(State of Qatar,它就能够回来二个从正玄波发生的准期采集样板。运用动静采集样品和声频规范,生成WAVE格式的旋律已经丰硕了。在产生的正玄波中的-1到+1之间是被活动和调解过的,那样声音的字节数据能够用0到255来表示,同期128象征零振幅。

况兼,在生成声音方面大家还要寻思此外多少个难题。平常来说,我们是因此正玄波的按键来生成莫斯代码。不过你直接那样来做的话,就能意识你转移的实信号会占用相当大的带宽。所以,平日有线电设备会对其再说改善,以减少带宽占用。

在大家的类别中,也会做那样的改良,只可是是用数字的点子。既然大家曾经知晓了四个微细声音样品“嘀”的时光长度,那么,能够印证,最小带宽的声幅发生在尺寸等于“嘀”的正玄波半周期。事实上,我们利用低通滤波器(low pass filter)来过滤音频复信号也能完结相符的意义。但是,既然大家早就精通全部的实信号字符,大家一贯省略的过滤一下每一个字符功率信号就能够了。

更换“嘀”、“嗒”和空域非实信号的PHP代码就如上面那样:

while ($dt < $DitTime) {
  $x = Osc();
  if ($dt < (0.5*$DitTime)) {
    // Generate the rising part of a dit and dah up to half the dit-time
    $x = $x*sin((M_PI/2.0)*$dt/(0.5*$DitTime));
    $ditstr .= chr(floor(120*$x+128));
    $dahstr .= chr(floor(120*$x+128));
    }
  else if ($dt > (0.5*$DitTime)) {
    // For a dah, the second part of the dit-time is constant amplitude
    $dahstr .= chr(floor(120*$x+128));
    // For a dit, the second half decays with a sine shape
    $x = $x*sin((M_PI/2.0)*($DitTime-$dt)/(0.5*$DitTime));
    $ditstr .= chr(floor(120*$x+128));
    }
  else {
    $ditstr .= chr(floor(120*$x+128));
    $dahstr .= chr(floor(120*$x+128));
    }
  // a space has an amplitude of 0 shifted to 128
  $spcstr .= chr(128);
  $dt += $sampleDT;
  }
// At this point the dit sound has been generated
// For another dit-time unit the dah sound has a constant amplitude
$dt = 0;
while ($dt < $DitTime) {
  $x = Osc();
  $dahstr .= chr(floor(120*$x+128));
  $dt += $sampleDT;
  }
// Finally during the 3rd dit-time, the dah sound must be completed
// and decay during the final half dit-time
$dt = 0;
while ($dt < $DitTime) {
  $x = Osc();
  if ($dt > (0.5*$DitTime)) {
    $x = $x*sin((M_PI/2.0)*($DitTime-$dt)/(0.5*$DitTime));
    $dahstr .= chr(floor(120*$x+128));
    }
  else {
    $dahstr .= chr(floor(120*$x+128));
    }
  $dt += $sampleDT;
  }

莫斯代码

WAVE格式的文书

WAVE是一种通用的音频格式。从最简便的样式来看,WAVE文件通过在头顶富含多个整数行列来代表钦点采集样板率的旋律振幅。关于WAVE文件的详细新闻请查看这里Audio File Format Specifications website。对于发出莫斯代码,大家并没有必要用到WAVE格式的装有参数选项,仅仅供给多少个8位的单声道就足以了,所以,so easy。须求注意的是,多字节数据需求利用低位优先(little-endian)的字节顺序。WAVE文件使用一种由称为“块(chunks)”的笔录组成的XC60IFF格式。

WAVE文件由三个ASCII标志符TiguanIFF开头,紧跟着叁个4字节的“块”,然后是八个满含ASCII字符WAVE的头音讯,最终是定义格式的数目和声音数据。

在大家的次第中,第三个“块”满含了多个格式表明符,它由ASCII字符fmt和一个4倍字节的“块”。在这里地,由于自家使用的是何足为奇脉冲编码调制(plain vanilla PCM)格式,所以各样“块”都以16字节。然后,大家还亟需那么些数量:声道数、声音采样/秒、平均字节/秒、四个区块(block)对齐提醒器、位(bit)/声音采集样本。别的,由于我们不须求高素质立体声,大家只使用单声道,我们采纳 11050采集样板/秒(规范的CD品质音频的采样率是 44200采集样本/秒)的采集样板率来生成声音,並且用8位(bit)保存。

末段,真实的点子数据积攒在接下来的“块”中。当中积攒ASCII字符data,叁个4字节的“块”,最终是由字节种类(因为我们选用的是8位(bit卡塔尔国/采集样板)组成的真诚音频数据。

在先后中,由8位音频振幅系列组成的声音保存在变量$soundstr中。一旦音频数据变化完成,就足以测算出具备的“块”大小,然后就能够把它们统一在联合写入磁盘文件中。下边包车型大巴代码彰显了怎么生成头消息和音频“块”。供给在意的是,$riffstr代表HavalIFF头,$fmtstr代表“块”格式,$soundstr表示音频数据“块”。

$riffstr = 'RIFF'.$NSizeStr.'WAVE';
$x = SAMPLERATE;
$SampRateStr = '';
for ($i=0; $i<4; $i++) {
  $SampRateStr .= chr($x % 256);
  $x = floor($x/256);
  }
$fmtstr = 'fmt '.chr(16).chr(0).chr(0).chr(0).chr(1).chr(0).chr(1).chr(0)
          .$SampRateStr.$SampRateStr.chr(1).chr(0).chr(8).chr(0);
$x = $n;
$NSampStr = '';
for ($i=0; $i<4; $i++) {
  $NSampStr .= chr($x % 256);
  $x = floor($x/256);
  }
$soundstr = 'data'.$NSampStr.$soundstr;

莫斯代码是一种文本编码方式。它的亮点是编码方便,并且用人耳就可见有助于的解码。本质上,是因而音频的开和关,进而变成或短或长的音频脉冲,平时称作点,也许用有线电术语称作“嘀”和“嗒”。用今世数字通讯术语,莫斯代码是一种振幅键控(amplitude shift keying ,ASK)。

小结和评价

我们的文件莫斯代码生成器近年来看起来还不易。当然,大家还足以对它做过多的改良和宏观,举例利用任何字符集、直接从文件中读取文本、生成裁减音频等等。因为大家这些项指标指标是使其可以在网络上方便的利用,所以大家这一个轻巧的方案,已经高达大家的指标了。

自然,长久以来的,希望大家对这几个轻松残酷的代码建议提出。近几来来即使平昔有人在教笔者,但自己要么相当不够莫斯代码相关背景知识,所以,要是现身其余的错误或疏漏都算是本身的错。

在莫斯代码中,字符被编码成二个“嘀”和“嗒”的行列。所以为了把公文转产生莫斯代码,我们第一要规定如何来表示“嘀”和“嗒”。一个很分明的挑精拣肥正是,用0代表“嘀”,用1意味“嗒”,或许反过来。不幸的是,莫斯代码应用的是可变长编码方案。所以我们也非得要运用一种可变长连串,也许接收一种方法,把数据打包成一种计算机内部存款和储蓄器通用的定势位宽的格式。别的,供给特别注意的是,莫斯代码并不区分字母大小写,况且对有些特殊符号不能编码。在大家那几个完成中,未定义的字符和符号将会被忽视。

在这里个连串中,内部存款和储蓄器占用而不是三个索要极度考虑的标题。所以,大家建议叁个简便的编码方案,即用“0”来代表每一种“嘀”,用“1”来表示每种“嗒”,何况把他们身处叁个字符串关联数组中。定义莫斯代码编码表的PHP代码就疑似上面那样:

$CWCODE = array ('A'=>'01','B'=>'1000','C'=>'1010','D'=>'100','E'=>'0', 'F'=>'0010','G'=>'110','H'=>'0000','I'=>'00','J'=>'0111', 'K'=>'101','L'=>'0100','M'=>'11','N'=>'10', 'O'=>'111', 'P'=>'0110','Q'=>'1101','R'=>'010','S'=>'000','T'=>'1', 'U'=>'001','V'=>'0001','W'=>'011','X'=>'1001','Y'=>'1011', 'Z'=>'1100', '0'=>'11111','1'=>'01111','2'=>'00111', '3'=>'00011','4'=>'00001','5'=>'00000','6'=>'10000', '7'=>'11000','8'=>'11100','9'=>'11110','.'=>'010101', ','=>'110011','/'=>'10010','-'=>'10001','~'=>'01010', '?'=>'001100','@'=>'00101');

内需小心的是,倘诺你特别介意内部存款和储蓄器占用的话,上边的代码能够表达为位。给各类代码增添一个始发位,就足以形成叁个位的形式,每种字符就能够用多少个字节来囤积。同一时候,当拆解剖判最后编码的时候,要删减最初位侧面的位,进而取得真正的变长编码。

纵然不菲人从没发掘到,事实上“时间隔开”是概念莫斯代码的首要成分,所以掌握那一点是生成莫斯代码的显要。所以,大家要做的率先件事,正是概念莫斯代码的内部码的年华间隔。为了便于起见,大家定义一个“嘀”的鸣响长度为三个光阴单位dt,“嘀”和“嗒”之间的间距也是叁个时光单位dt;定义三个“嗒”的长度为3个dt,字符之间的区间也是3个dt;定义单词之间的区间是7个dt。所以,计算起来,大家的时日间隔表就好像下边那样:

在莫斯代码中,编码声音的“播放速度”日常用 单词数/分钟来表示。由于斯洛伐克语单词有例外的长短,而且字符也可能有分化数额的“嘀”和“嗒”,所以,从WPM转形成数字采集样本并不是看上去那样轻便。在一份被国际集团使用的方案中,选取5个字符作为单词的平分长度,相同的时候,叁个数字或标点被用作2个字符。这样,平均一个单词正是四十九个小时单位dt。这样,若是您钦定了WPM,那么大家总的播放时间就是50 * WPM的年华单位/分钟,每种“嘀”的长度等于1.2/WPM秒。那样,给出一个“嘀”的年月长短,其余因素的年月长短相当的轻松就能够总结出来。

你大概早就注意到,在上头突显的网页中,对于低于15WPM的选项,大家利用了“Farnsworth spacing”。那就是说那几个“Farnsworth spacing”又是个什么样鬼?

当报务员学习用耳朵来解码莫斯代码的时候,他就能意识到,当播放速度变化的时候,字符现身的旋律也会跟着变化。当播放速度低于10WPM的时候,他能够从容的甄别“嘀”和“嗒”,况且领悟发送的哪个字符。不过当播放速度超过10WPM的时候,报务员的辨识就能够出错,他识别出来的字符会多于实际的“嘀”和“嗒”。当一个读书的时候习贯低速莫斯代码的人,在拍卖火速广播代码的时候,就能够冒出难题。因为节奏变了,他无心的甄别就能出错。

为驾驭决这些标题,“Farnsworth spacing”就被发明出来了。本质上来说,字母和标识的播音速度如故采纳高于15WPM的速度,同一时候,通过在字符之间插入越来越多的空格,来使全体的广播速度回退。那样,报务员就可以看到以多少个创造的速度和音频来鉴定区别每种字符,一旦具备的字符都学习实现,就足以追加快度,而选用员只要求加速识别字符的速度就能够了。本质上来讲,“Farnsworth spacing”这么些技巧消逝了节奏变化那些难点,使接受员能够高效学习。

就此,在方方面面系统中,对于更低的播报速度,都统十分之一15WPM。相呼应的,叁个“嘀”的长度是0.08秒,不过字符之间和单词之间的间隔就不再是3个dit大概7个dit,而是举行的调度以适应整体进程。

生成声音

在PHP代码中,三个字符代表一组由“嘀”、“嗒”和空域间距组成的莫斯声音。大家用数字采集样板来组合音频系列,而且将其写入到文件中,同时加上适合的数量的头新闻来将其定义成WAVE格式。

生成声音的代码其实一定简单,你能够在品种中PHP文件中找到它们。作者意识定义五个“数字振荡器”相当实惠。每调用叁回osc(卡塔尔(قطر‎,它就能重返一个从正玄波发生的依期采集样板。运用动静采集样本和声频标准,生成WAVE格式的节奏已经足足了。在产生的正玄波中的-1到+1之间是被移位和调动过的,那样声音的字节数据可以用0到255来代表,相同的时间128象征零振幅。

并且,在生成声音方面大家还要考虑别的三个标题。平时来讲,我们是透过正玄波的开关来生成莫斯代码。但是你一向那样来做的话,就能开掘你转移的功率信号会占用相当的大的带宽。所以,日常有线电装置会对其再说校订,以收缩带宽占用。

在大家的品类中,也会做那样的校正,只可是是用数字的艺术。既然我们已经领会了三个纤维声音样板“嘀”的时辰长短,那么,能够印证,最小带宽的声幅发生在长度等于“嘀”的正玄波半周期。事实上,大家应用低通滤波器来过滤音频时限信号也能达到平等的效果与利益。不过,既然大家曾经清楚全数的随机信号字符,大家直接省略的过滤一下每一个字符时域信号就足以了。

改造“嘀”、“嗒”和空域非时限信号的PHP代码好似上边那样:

while  { $x = Osc(); if  { // Generate the rising part of a dit and dah up to half the dit-time $x = $x*sin*$dt/; $ditstr .= chr; $dahstr .= chr; } else if  { // For a dah, the second part of the dit-time is constant amplitude $dahstr .= chr; // For a dit, the second half decays with a sine shape $x = $x*sin*/; $ditstr .= chr; } else { $ditstr .= chr; $dahstr .= chr; } // a space has an amplitude of 0 shifted to 128 $spcstr .= chr; $dt += $sampleDT; }// At this point the dit sound has been generated// For another dit-time unit the dah sound has a constant amplitude$dt = 0;while  { $x = Osc(); $dahstr .= chr; $dt += $sampleDT; }// Finally during the 3rd dit-time, the dah sound must be completed// and decay during the final half dit-time$dt = 0;while  { $x = Osc(); if  { $x = $x*sin*/; $dahstr .= chr; } else { $dahstr .= chr; } $dt += $sampleDT; }

WAVE格式的公文

WAVE是一种通用的音频格式。从最简便易行的花样来看,WAVE文件通过在头顶包蕴三个卡尺头队列来表示钦赐采集样板率的音频振幅。关于WAVE文件的详细新闻请查看这里奥迪o File Format Specifications website。对于发生莫斯代码,大家并无需用到WAVE格式的具有参数选项,仅仅必要一个8位的单声道就足以了,所以,so easy。供给注意的是,多字节数据需求运用低位优先的字节顺序。WAVE文件使用一种由称为“块”的记录组成的福睿斯IFF格式。

WAVE文件由二个ASCII标记符CRUISERIFF起头,紧跟着四个4字节的“块”,然后是八个蕴涵ASCII字符WAVE的头消息,最终是定义格式的多寡和音响数据。

在大家的顺序中,首个“块”富含了一个格式表明符,它由ASCII字符fmt和三个4倍字节的“块”。在这里处,由于自家动用的是平日脉冲编码调制格式,所以每种“块”都以16字节。然后,大家还索要这么些多少:声道数、声音采集样板/秒、平均字节/秒、一个区块/声音采集样板。别的,由于大家没有必要高水平立体声,大家只利用单声道,大家运用 11050采样/秒(规范的CD质量音频的采集样板率是 44200采集样板/秒)的采集样本率来生成声音,并且用8位保存。

末尾,真实的点子数据积累在接下来的“块”中。当中积攒ASCII字符data,一个4字节的“块”,最终是由字节体系组成的切实地工作音频数据。

在前后相继中,由8位音频振幅类别组成的声音保存在变量$soundstr中。一旦音频数据变化完结,就足以测算出装有的“块”大小,然后就能够把它们统一在同步写入磁盘文件中。上边包车型客车代码呈现了什么生成头音讯和拍子“块”。必要留意的是,$riffstr代表RAV4IFF头,$fmtstr表示“块”格式,$soundstr代表音频数据“块”。

$riffstr = 'RIFF'.$NSizeStr.'WAVE';$x = SAMPLERATE;$SampRateStr = '';for  { $SampRateStr .= chr; $x = floor; }$fmtstr = 'fmt '.chr.chr.chr .$SampRateStr.$SampRateStr.chr.chr;$x = $n;$NSampStr = '';for  { $NSampStr .= chr; $x = floor; }$soundstr = 'data'.$NSampStr.$soundstr;

小结和评价

大家的文书莫斯代码生成器近日看起来还行。当然,我们还足以对它做过多的订正和康健,譬喻利用其余字符集、直接从文件中读取文本、生成收缩音频等等。因为大家那些类其余指标是使其能够在互连网上利于的利用,所以我们那么些大约的方案,已经高达大家的目标了。

理当如此,长久以来的,希望大家对那些简单凶狠的代码建议提出。

本文由威尼斯www.9778.com发布于Web前端技术,转载请注明出处:PHP实现基于文本的莫斯电码生成器

关键词:

变量在 PHP7 内部的实现

PHP5 中的对象 在精晓 PHP7 中的对象达成直线大家先看一下 PHP5的还要看一下有怎么着功用上的标题。PHP5 中的 zval 会存...

详细>>

PHP7威尼斯www.9778.com 变量在内部的实现详解

正文第一有个别和第二均翻译自Nikita Popov(nikic,PHP官方开荒组成员,德国首都科技(science and technology卡塔尔国高校的学...

详细>>

哪些编写三个单独的 PHP 扩张

校勘 m4 后缀的配置文件 m4配置文件能够钦点一些附加的检查。对于多个独门扩大来讲,你只供给做一些宏调用就能够...

详细>>

PHP中的随机性 你觉得自己幸运吗?

PHP7 中的CSPRNG PHP 7引入了两个新函数可以用来实现CSPRNG: random_bytes 和 random_int。 random_bytes 函数返回一个字符串,...

详细>>