PHP - 检查一个字符串是否是另一个字符串的旋转

2024-01-06

需要编写一个代码块来检查一个字符串是否是另一个字符串的旋转。

看了这里的大量帖子,都是用 Java 或 C++ 写的,但我需要用 PHP 来做。

我尝试了一些不同的方法,尝试使用 C++ 和 Java 示例,但我没有任何运气,这是我当前的代码:

<?php

function isSubstring($s1, $s2) {


    if(strlen($s1) != strlen($s2)) {
        return false;
    }

    if(WHAT TO PUT HERE) {
        echo "it is!";
    } else {
        echo "nope";
    }
}


isSubstring("hello", "helol");

?>

可用的方法很多。这里还有一个使用内置函数的方法count_chars http://php.net/manual/en/function.count-chars.php对两个字符串进行比较,然后比较两个结果数组:

function isSubstring($s1, $s2) {
    if (strlen($s1) != strlen($s2)) {
        echo "nope";
        return;
    }

    $s1cnt = count_chars($s1, 1);
    $s2cnt = count_chars($s2, 1);

    if($s1cnt === $s2cnt) {
        echo "it is!";
    } else {
        echo "nope";
    }
}

Edit:正如 MonkeyZeus 指出的那样,请注意与多字节字符的比较。它可能会咬一点:

isSubstring('crढap', 'paࢤrc');

会给true作为答案。 ढ 是 UTF-8 印度梵文三字节字符:E0 A2 A4ࢤ 也是三字节字符(阿拉伯语):E0 A4 A2,并且 count_chars 函数对各个字节进行计数。因此,如果字符仅来自一种语言,那么使用是安全的,否则就吃一些头痛药......

在我看来,要管理这类事情,我们需要有由 3 个字节组成的字符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP - 检查一个字符串是否是另一个字符串的旋转 的相关文章

  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 使用 PHP 删除文件 onclick [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在用户单击删除链接时删除文件 但
  • 从前端更改记录顺序

    我在编写下一个功能时遇到问题 我希望用户能够重新排列记录并更改 display order 值 我使用 Jquery UI 的可拖放功能来促进这一点 我可以看到如何简单地交换 display order 值 但我想为一条记录设置一个显示顺序
  • 如何在 Codeigniter 中将变量从一个控制器传递到另一个控制器

    我刚刚开始学习 Code Igniter 我想知道如何将变量从一个控制器 first cont php 传递到另一个控制器 second cont php 任何帮助 将不胜感激 提前致谢 这将取决于具体情况 如果您想将数据保留一段时间 那么
  • WordPress Tax_query“和”运算符未按预期运行

    我有一个自定义帖子类型image自定义分类法称为图片标签 它像类别一样分层 以下是可能使用的标签的一些示例 Structure id 25 House id 56 Skyscraper Nature Animal Plant id 41 因
  • 创建一个基于简单文本文件的搜索引擎

    我需要尽快创建一个基于简单文本文件的搜索引擎 使用 PHP 基本上它必须读取目录中的文件 删除停止词和无用词 为每个剩余的有用词及其在每个文档中出现的次数建立索引 我猜这个的伪代码是 for each file in directory r
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • ResourceBundle 返回 NULL,没有引发任何错误

    对于国际化数据 与 ResourceBundle来自 PHP 的 intl 扩展的类 我运行了扩展 PHP 5 3 4 Windows 并使用以下命令创建了一个 dat 文件ICU 数据库定制器 http apps icu project
  • 类别树的路由

    我正在使用Tree http www gediminasm org article tree nestedset behavior extension for doctrine 2类别树的学说扩展并希望有如下路线 cat subcat1 s
  • Joomla getUser() 不显示更新的用户数据

    下面的代码允许我在用户的 Joomla 个人资料的个人资料页面中显示用户名 鉴于我已经覆盖了模板以获得我想要的外观和感觉 user JFactory getUser if user gt guest echo You are logged
  • “yum install php”需要 httpd-mmn = 20051115

    我从源代码安装了 httpd apache 2 4 6 现在我想安装 PHP 但yum install php吐出错误 Error Package php 5 3 3 40 el6 6 x86 64 updates Requires htt
  • 迭代字符串 R 的字符

    有人可以解释一下为什么这不会在 R 中单独打印所有数字 numberstring lt 0123456789 for number in numberstring print number 字符串不就是字符数组吗 在 R 中该怎么做 In
  • 如何在 PHP 中上传 .txt 文件并在另一页面上逐行读取该文件?

    我的目标是在表单上上传 txt 文件 浏览 将文件发布到另一个 php 页面 然后逐行读取该文件 到目前为止我的代码就在这里 文件 1 HTML 上传
  • dompdf:找不到图像或类型未知

    这是我的代码 我几乎尝试了所有在 PDF 上显示图像的方法 但仍然不起作用 你能帮我解决这个问题吗 我还将 DOMPDF ENABLE REMOTE 设置为 true 结果仍然相同 require once dompdf autoload
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • 显示产品中的类别名称和类别 ID - Laravel

    我已经找到了这个答案 但它对我不起作用 Laravel 按 id 显示类别 https stackoverflow com questions 39222584 laravel displaying categories by id 我无法
  • 登录页面上出现错误“警告:尝试访问 bool 类型值的数组偏移量”[重复]

    这个问题在这里已经有答案了 我目前正在为一个学校项目制作一个网站 并且正在制作一个用户注册系统 目前 注册部分与进入 MySQL 数据库的用户数据完美配合 但是 我的登录页面似乎已损坏 每次我尝试登录时都会收到以下错误 警告 尝试访问第 2
  • 是否可以从插件扩展 Wordpress XMLRPC 接口?

    是否可以创建一个插件 在激活时向 XMLRPC 接口添加新的 功能 并处理其调用 简而言之 是的 您可以将函数添加为插件或添加到主题的functions php 文件中来处理XMLRPC 调用 您将需要以下部分 function xml a
  • 字符串/分段错误

    Program to calculate trip and plan flights define TRIP 6 define NAMEMAX 40 define DEST 1 include

随机推荐

  • PHP中的矩阵乘法

    尽管矩阵的顺序应该没问题 但以下代码会抛出异常 这可能是一件我无法注意到的小事 但无法弄清楚
  • Python通过鼠标点击找到最近的乌龟

    我正在使用基于海龟的网格设置创建扫雷风格的游戏 我需要找到网格内最近的单元格并显示位于其下方的图标 无论是炸弹还是数字图标 我不想做到精确 我只需要单击鼠标即可找到网格中最近的单元格 即使单击不是直接在板上 目前 我的代码仅显示板上创建的最
  • 如何读取 Bash 中的任意一个键?

    我可以得到read n 1 KEY获取大多数键 但由多个字符表示的键除外 例如 如果我按向上箭头键 read n 1 echo A A As you can see read only takes the Esc and the A is
  • 使用 Python 加载 CloudFormation YAML

    我有一套YAML我最近转换的 AWS Cloudformation 模板JSON 使用时JSON我能够加载这些模板并使用它们进行转换jinja从中生成一些 Markdown 文档 我正在尝试做同样的事情YAML在Python中 我在 clo
  • 带回调的forceUpdate() 与 this.setState()

    原因是在处理时state具有自己功能的变量 我能想到的有两种方法 一是变异this state直接 嗯 有点 我知道这是不鼓励的 通过调用状态函数 然后调用forceUpdate 并处理由此带来的后果 另外就是做回调函数 哪个是正确的方法
  • Android:从顶部开始圆形进度条(270°)

    我使用以下可绘制对象定义了一个圆形进度条 ciruclar progress bar xml
  • 符合标准的方式来定义我的枚举

    在没有明确正确确定枚举范围的情况下 如何摆脱警告 符合标准的代码将与foo bar mUpload see here https stackoverflow com questions 514194 using enum inside ty
  • 值得学习使用 MSBuild 吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我只是想知道人们是否认为值得学习使用 MSBuild 语法来自定义 net 项目的构建过程 或者考虑到使用 Visual Studio 构建项目
  • 对 javascript 中的“this”关键字感到困惑

    我已经很长时间没有使用 Javascript 了 今天又重新学习了它 一直让我着迷的一件事是this关键词 我知道在 jQuery 事件处理程序中 例如单击事件 this指的是触发事件的元素 怎么this传递给我作为回调提供的函数 即使我的
  • 在 bash 调试运行期间隐藏信息

    我们在 shell 脚本中进行 debug run bash x my script sh 来了解 显示它正在做什么 但这样做可能会显示一些我不想看到的敏感信息 例如密码 我的脚本从安全保管库中提取密码 并在需要时将其作为脚本中的变量传递
  • 当用户在 scanf() 中输入错误的数据类型时如何修复无限循环?

    C初学者在这里 对于下面的程序 每当用户输入字符或字符串时 它就会进入无限循环 在仍然使用 scanf 的情况下如何解决这个问题 与使用 scanf 相比 编写该程序的更好方法是什么 感谢那些愿意回答的人 include
  • 在 MATLAB 中将频谱图保存为图像

    我正在使用以下方法分析一些声音片段spectrogram 函数于MATLAB 我想将频谱图保存为图像 jpg png 等 但无论我以什么图像格式保存图形 生成的图像总是与我在图中看到的不同 参差不齐 这是频谱图的示例 Matlab图 htt
  • 为什么我的基本 PyGame 模块这么慢?

    我计划在 Pygame 中编写代码 但我刚刚开始学习基础知识 发现执行代码非常慢 当我按下一个键时 它需要一段时间才能在终端中打印它 似乎没有任何模式 我正在运行Python 2 6 遇到这个问题后我降级了 通过进一步的测试我发现整个系统变
  • ProtoIninclude 添加了不需要的依赖项

    我刚刚在分布式缓存应用程序中用协议缓冲区替换了 NET 序列化 结果确实令人印象深刻 我唯一不喜欢的是 我需要在基本消息类及其子类之间添加依赖关系 这会创建循环依赖关系 除了用 ProtoInclude 标记基类之外 还有其他选择吗 In
  • C# 将文本文件分割成二维字符串数组

    我有一个如下所示的文本文件 John Gauthier blue May Henry Ford Red June James Bond Orange December 我想将它分成一个二维字符串数组 这样我就可以将每一行和每个单词分开 前任
  • 缓存失效——有通用的解决方案吗?

    计算机科学中只有两个难题 缓存失效和命名 菲尔 卡尔顿 是否有通用的解决方案或方法来使缓存失效 知道条目何时过时 以便保证您始终获得最新数据 例如 考虑一个函数getData 从文件中获取数据 它根据文件的上次修改时间对其进行缓存 每次调用
  • Rails、设计身份验证、CSRF 问题

    我正在使用 Rails 制作一个单页应用程序 登录和注销时 使用 ajax 调用 Devise 控制器 我遇到的问题是 当我 1 登录 2 注销然后再次登录时不起作用 我认为这与 CSRF 令牌有关 当我注销时 该令牌会被重置 尽管它不应该
  • symfony2 - 获取执行时间

    我想使用 symfony2 为我的应用程序制作一个状态页 我想在其中打印特定请求的执行时间 以及其他数据 无论如何我找不到这样做 我知道我可以通过以下方式跟踪代码部分的执行时间 starttime microtime do somethin
  • Mysql 带游标的存储过程

    Mysql游标问题 我编写了一个存储过程 它将从一个表中获取旅行记录并将其插入到 2 3 个不同的表中 使用插入语句 问题是我正在检查 table1 中是否不存在记录 然后我将记录从 temptable 顺序插入到 table1 table
  • PHP - 检查一个字符串是否是另一个字符串的旋转

    需要编写一个代码块来检查一个字符串是否是另一个字符串的旋转 看了这里的大量帖子 都是用 Java 或 C 写的 但我需要用 PHP 来做 我尝试了一些不同的方法 尝试使用 C 和 Java 示例 但我没有任何运气 这是我当前的代码