本文概述

莫尔斯电码是一种通过键入一系列电子脉冲(短脉冲(称为”点”)和长脉冲(” _”)表示)来发送文本消息的方法。尽管你可能认为此代码仅在电影中使用, 但是摩尔斯电码在业余无线电爱好者中仍然很流行, 这意味着它仍在使用。

在本文中, 尽管它看起来没用(可能确实是因为你很可能永远不需要它), 但是你将在Symfony 3项目中学习如何使用PHP将文本转换为莫尔斯电码, 反之亦然。

1.安装摩尔斯电码库

摩尔斯电码库是一个有用的类, 可让你轻松地将文本转换为摩尔斯电码和将摩尔斯电码转换为文本。你可以使用composer打开终端, 将其安装到Symfony项目中, 然后切换到项目目录, 然后运行以下命令:

composer require rexxars/morse

另外, 你可以手动修改composer.json文件, 并将该库添加为依赖项:

{

"require": {

"rexxars/morse": "^1.0"

}

}

然后运行composer install。安装后, 你将可以使用控制器中的库。该库由@rexxars编写, 有关更多信息, 请访问Github上的官方存储库。

2.在控制器中使用库

使用此库, 你可以将文本编码为摩尔斯电码表示形式, 并根据需要创建音频文件, 并将摩尔斯电码解码为文本。

编码(文本到莫尔斯电码)

要将文本编码为摩尔斯电码表示形式, 请创建一个摩尔斯电码实例, 然后使用toMorse方法。此方法将要转换为摩尔斯文本的文本作为第一个参数:

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\HttpFoundation\Request;

use Symfony\Component\HttpFoundation\Response;

/**

* Include the Morse Code library

*/

use Morse\Text as MorseText;

class DefaultController extends Controller

{

/**

* @Route("/", name="homepage")

*/

public function indexAction(Request $request)

{

// Create an instance of Morse Code

$text = new MorseText();

// The text that you want to convert to morse

$originalText = "Hello, this is the text that I want to encode";

// Encode the text using the encode method of the morse instance

$morseResult = $text->toMorse($originalText);

// Return the morse code as response from your controller

// .... . .-.. .-.. --- --..-- - .... .. ... .. ... - .... . - . -..- - - .... .- - .. .-- .- -. - - --- . -. -.-. --- -.. .

return new Response($morseResult);

}

}

你甚至可以从控制器返回WAV(音频)文件作为响应:

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\HttpFoundation\Request;

use Symfony\Component\HttpFoundation\Response;

/**

* Include the Morse Code library

*/

use Morse\Wav as MorseWav;

class DefaultController extends Controller

{

/**

* @Route("/", name="homepage")

*/

public function indexAction(Request $request)

{

// Create an instance of Morse Code

$wav = new MorseWav();

// The text that you want to convert to morse

$originalText = "Hello World";

// Encode the text using the encode method of the morse instance

$morseWAVBuffer = $wav->generate($originalText);

// Return the morse code as response from your controller

return new Response(

// Set content of the response the WAV Buffer result

$morseWAVBuffer, // Set OK status code

Response::HTTP_OK, // Send the response as a WAV file

array('content-type' => 'audio/wav')

);

}

}

解码(莫尔斯码)

要解码摩尔斯电码并获取其文本表示, 请创建摩尔斯电码的实例, 然后使用fromMorse方法。此方法将要转换为摩尔斯文本的文本作为第一个参数:

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\HttpFoundation\Request;

use Symfony\Component\HttpFoundation\Response;

/**

* Include the Morse Code library

*/

use Morse\Text as MorseText;

class DefaultController extends Controller

{

/**

* @Route("/", name="homepage")

*/

public function indexAction(Request $request)

{

// Create an instance of Morse Code

$text = new MorseText();

// The morse code that you want to convert into text

$originalMorse = ".... . .-.. .-.. --- --..-- - .... .. ... .. ... - .... . - . -..- - - .... .- - .. .-- .- -. - - --- . -. -.-. --- -.. .";

// Decode the morse code using fromMorse

$textResult = $text->fromMorse($originalMorse);

// Return the decoded text as response

// HELLO, THISISTHETEXTTHATIWANTTOENCODE

return new Response($textResult);

}

}

编码愉快!

php+摩尔斯电码,如何在Symfony 3中使用PHP编码和解码摩尔斯电码(翻译摩尔斯电码)...相关推荐

  1. 如何在Tensorflow.js中处理MNIST图像数据

    by Kevin Scott 凯文·斯科特(Kevin Scott) 如何在Tensorflow.js中处理MNIST图像数据 (How to deal with MNIST image data i ...

  2. 如何在SpringBootOAuth服务器中实现双因素认证?第二部分:Under the Hood

    如何在SpringBootOAuth服务器中实现双因素认证?2:Under the Hood 原创2022-03-09 09:40·超级晴天ii 本文继续第1部分,演示SpringBootOAuth身 ...

  3. 如何在3ds max中创建可用于真人场景的巨型机器人:第 1部分

    推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max. 打开 3ds Max 步骤 2 在左侧视口中,按键盘上的 Alt-B 键.它 打开视口 ...

  4. 如何在sqlite3连接中创建并调用自定义函数

    #!/user/bin/env python # @Time :2018/6/8 14:44 # @Author :PGIDYSQ #@File :CreateFunTest.py '''如何在sql ...

  5. Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...

    我在硬故障处理程序中有一些程序集.程序集基本上是为了传递当前堆栈指针作为参数(在R0中).它看起来像这样...如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数? __asm(&quo ...

  6. 学习如何在AutoCad土木工程中绘制建筑设计图

    学习如何在AutoCad中绘制建筑设计图从平面图到AutoCad土木工程中的整栋建筑 你会学到: 如何绘制房屋地图 如何绘制建筑设计 如何从AutoCad打印或出图 AutoCaD使用 AutoCaD ...

  7. 如何在OS X中打印到PDF文件

    如何在OS X中打印文件到PDF文件? 其实不需要安装任何其他软件,OS X本身支持打印到PDF文件这个功能. 具体操作详见下面文章: Want to save a document or web p ...

  8. 转 如何在IOS设备中去掉屏幕上的status bar

    引入 如何在IOS设备中去掉屏幕上的status bar,即:不显示设备上方的[网络.时间.电池??]条? 操作 方法一: 在-info.list项目文件中,加上"Status bar is ...

  9. react中纯函数_如何在纯React中创建电子邮件芯片

    react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...

最新文章

  1. 获取指定日期之间的各个周和月
  2. 2008 R2 AD通过组策略针对用户进行限制QQ等软件的运行
  3. php文件域的作用,PHP作用域和文件夹操作示例
  4. 数据中台离数据资产“价值变现”还有多远?
  5. 前端学习(2982):实现商品功能列表
  6. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest
  7. flume存储到mysql_flume_实现自定义MysqlSink,写入mysql表
  8. 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则
  9. php mysql cpu使用率_Mysql CPU占用高的问题解决方法小结
  10. 火山视频在一键去水印网站上解析教程,火山视频去水印教程
  11. 阿里巴巴2019实习生招聘正式启动
  12. AVM 拖动组件 movable-view 介绍
  13. Sublime Text清除历史记录
  14. 计算机网络实验:802.3协议分析和以太网
  15. 计算机网络学习-003
  16. 达梦数据库一些疑难杂症的解决
  17. qutip+mayavi可视化波片对光偏振态的影响
  18. 2019年终总结,继往开来!
  19. android 添加点击声音,Android如何为按键添加声音
  20. UKF 无迹卡尔曼滤波

热门文章

  1. matlab中sparse和full函数的使用
  2. svn服务端删除版本库_删除SVN目录及从服务器端删除SVN版本库文件方法详解
  3. 【Rust日报】 2019-07-29:关于创建「更小的」Rust的思考
  4. 中医养生专家周敏:人类应当遵循阴阳五行养生自然法则
  5. 怎样查看和修改配置Git用户名和邮箱
  6. 恢复Windows IE浏览器为默认
  7. AD之相同模块布局布线方法
  8. C++指针知识总结.
  9. 谷歌浏览器chrome怎么设置成中文
  10. 苹果平板不用原装笔可以吗?值得入手的几款ipad触控笔