php解摩斯电码,PHP摩尔斯电码转换器
我正在用PHP编写一个基本的莫尔斯代码转换器,它可以接受一个字符串并将其转换为莫尔斯代码.它使用了一个关联数组,一个foreach循环和一个for循环.它有效,除了某些原因它在每个转换后的字符后输出等效于’0’的莫尔斯码.我无法弄清楚0的来源.如果我从关联数组中删除0,没有问题,但我希望能够转换数字.如果有人能够给我一些反馈,那将非常感激.
这是代码:
$string = "dog";
$string_lower = strtolower($string);
$assoc_array = array(
"a"=>".-",
"b"=>"-...",
"c"=>"-.-.",
"d"=>"-..",
"e"=>".",
"f"=>"..-.",
"g"=>"--.",
"h"=>"....",
"i"=>"..",
"j"=>".---",
"k"=>"-.-",
"l"=>".-..",
"m"=>"--",
"n"=>"-.",
"o"=>"---",
"p"=>".--.",
"q"=>"--.-",
"r"=>".-.",
"s"=>"...",
"t"=>"-",
"u"=>"..-",
"v"=>"...-",
"w"=>".--",
"x"=>"-..-",
"y"=>"-.--",
"z"=>"--..",
"0"=>"-----",
"1"=>".----",
"2"=>"..---",
"3"=>"...--",
"4"=>"....-",
"5"=>".....",
"6"=>"-....",
"7"=>"--...",
"8"=>"---..",
"9"=>"----.",
"."=>".-.-.-",
","=>"--..--",
"?"=>"..--..",
"/"=>"-..-.",
" "=>" ");
for($i=0;$i
foreach($assoc_array as $letter => $code){
if($letter == $string_lower[$i]){
echo "$code
";
}
}
}
?>
解决方法:
主要问题是你所做的“更多”.当你可以使用字符串从中获取所需的数据时,无需循环遍历你的$assoc_array.
这也使用更少的资源,因为您只需循环所需的字母/数字/空格的精确数量,而不是从a-z和0-9循环.
/*Rest of your code above*/
for($i=0;$i
echo (isset($assoc_array[$string_lower[$i]])) ? $assoc_array[$string_lower[$i]] . '
' : 'ERROR';
}
由于您的数组包含a-z和0-9中的所有内容,因此您可以轻松地调用所需的字母而无需担心丢失数据.
编辑:
添加了一个isset()检查,几乎不需要它,因为$assoc_array涵盖了所有需要的字母/数字,但比抱歉更安全. (感谢@Farkie提醒我)
标签:php,arrays,loops,converter,morse-code
来源: https://codeday.me/bug/20190611/1220130.html
php解摩斯电码,PHP摩尔斯电码转换器相关推荐
- 摩尔斯电码_摩尔斯电码二叉树和baader meinhof现象
摩尔斯电码 The other night I was watching some videos by 2 Youtube channels I really like. The first one ...
- php+摩尔斯电码,如何在Symfony 3中使用PHP编码和解码摩尔斯电码(翻译摩尔斯电码)...
本文概述 莫尔斯电码是一种通过键入一系列电子脉冲(短脉冲(称为"点")和长脉冲(" _")表示)来发送文本消息的方法.尽管你可能认为此代码仅在电影中使用, 但是 ...
- php+摩尔斯电码,PHP摩尔斯电码转换器
我正在用 PHP编写一个基本的莫尔斯代码转换器,它可以接受一个字符串并将其转换为莫尔斯代码.它使用了一个关联数组,一个foreach循环和一个for循环.它有效,除了某些原因它在每个转换后的字符后输出 ...
- android光传感实现摩斯密码,一晚掌握摩尔斯电码的快速记忆法
在业余无线电的通信过程中,摩尔斯电码由于其神秘性引起了广大无线电业余爱好者的无限兴趣.然而,大家往往一眼看到摩尔斯电码编码规则,觉得很复杂难以记忆,索性放弃. 摩尔斯数字电码 摩尔斯数字电码 先从数字 ...
- 利用python实现将文本、摩尔斯电码与用滴答表示的摩尔斯电码三者相互转换
文章目录 目录 前言 一.摩尔斯电码的对照表: 二.python代码的完整展示 三.代码运行结果的展示: 四.总结与注意事项 前言 本文的代码主要通过字典与反转字典,实现摩尔斯电码与文本的相互转换,并 ...
- 漫画:什么是摩尔斯电码?
摩尔斯电码是什么 摩尔斯电码(Morse code),是1837年由美国人发明,本质上是一种对信息的编码,最初用于人们的远程通信. 那个时候,人们连电话都还没发明出来,更不用说手机和互联网了.人们远程 ...
- 摩尔斯电码、摩斯电码
摩尔斯电码(又译为摩斯电码,Morse code)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母.数字和标点符号等.它由美国人艾尔菲德·维尔发明,当时他正在协助Samue ...
- 简单的摩尔斯电码(又译为摩斯电码)
1.名字解析: 摩尔斯电码(Morse alphabet)(又译为摩斯电码)是一种时通时断的信号代码,这种信号代码通过不同的排列顺序来表达不同的英文字母.数字和标点符号等.由美国人摩尔斯(Samuel ...
- 【愚公系列】2022年04月 编码解码-摩尔斯电码和栅栏密码
文章目录 一.摩尔斯电码和栅栏密码的介绍 1.摩尔斯电码 1.1 摩尔斯电码的概念 1.2 摩尔斯电码的应用: 2.栅栏密码 2.1 栅栏密码的概念 2.2 栅栏密码的应用 2.3 栅栏密码的脚本 3 ...
最新文章
- PostgreSQL:创建自增序列id,分区表,分区表子表
- Spring-Boot:写出来的网站访问不到静态资源?怎样通过url访问SpringBoot项目中的静态资源?localhost:8989/favicon.ico访问不了工程中的图标资源?
- 修改class文件_VM实战(六) - 通过案例深入学习class文件结构原理
- CListCtrl列表控件---总结
- VTK:相交线用法实战
- android中解析后台返回的json字符串
- 相信应该有百分九十的男生看见这个东西是这个状态吧?
- 133-PHP子类无法重写父类private同名函数
- php 中间表统计,多对多中间表详解
- 编程语言对比 容器
- python中的多进程与多线程(一)
- learning opencv3: 一:overview 打开自己的视频文件加上暂停快进按钮
- android盒子多个DLNA冲突,说说DLNA、AirPlay 、Miracast那点事
- labview 控件安装步骤
- python 等值面 插值_对离散点进行克里金插值并输出矢量等值面
- iOS 升级HTTPS配置ATS-----(1)------
- GPIO接口-引脚对照
- OpenVINO之链接库
- adobe xd_如何在Adobe XD中创建Finance App UI设计
- [附源码]计算机毕业设计springboot酒店客房管理信息系统