在 PHP 中查找多个字符串位置

2024-02-15

我正在编写一个解析给定 URL 的 PHP 页面。我能做的就是仅找到第一个出现的值,但是当我回显它时,我得到另一个值而不是给定的值。

这就是我到目前为止所做的。

<?php
$URL = @"my URL goes here";//get from database
$str = file_get_contents($URL);
$toFind = "string to find";
$pos = strpos(htmlspecialchars($str),$toFind);
echo substr($str,$pos,strlen($toFind)) . "<br />";
$offset = $offset + strlen($toFind);
?>

我知道可以使用循环,但我不知道循环体的条件。

我怎样才能显示我需要的输出?


发生这种情况是因为您正在使用strpos on the htmlspecialchars($str)但你正在使用substr on $str.

htmlspecialchars()将特殊字符转换为 HTML 实体。举个小例子:

// search 'foo' in '&foobar'

$str = "&foobar";
$toFind = "foo";

// htmlspecialchars($str) gives you "&amp;foobar"
// as & is replaced by &amp;. strpos returns 5
$pos = strpos(htmlspecialchars($str),$toFind);

// now your try and extract 3 char starting at index 5!!! in the original
// string even though its 'foo' starts at index 1.
echo substr($str,$pos,strlen($toFind)); // prints ar

要解决此问题,请使用相同的haystack在这两个函数中。

要回答您查找一个字符串在其他字符串中所有出现的其他问题,您可以使用第三个参数strpos http://php.net/manual/en/function.strpos.php, offset,指定从哪里搜索。例子:

$str = "&foobar&foobaz";
$toFind = "foo";
$start = 0;
while(($pos = strpos(($str),$toFind,$start)) !== false) {
        echo 'Found '.$toFind.' at position '.$pos."\n";
        $start = $pos+1; // start searching from next position.
}

Output:

在位置 1 找到 foo
在位置 8 找到 foo

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

在 PHP 中查找多个字符串位置 的相关文章

  • 配置 htaccess 以使用 Angular 和 PHP 路由

    我正在尝试使用 Angular 4 和 PHP 路由 但我无法配置它以便同时使用两者 我可以让它与其中之一一起工作 但不能同时与两者一起工作 这是我的文件夹结构 root index html vendor bundle js other
  • 从txt文件java中删除一行[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个大文件 我只需要删除其中的几行 有没有办法在不打开新文件并复制整个文本的情况下执行此操作 编辑 主要问题是当它在多个带有大 t
  • 如何在 php 和 mongodb 中使用 findAndModify

    我想将 id 加 1 但运行 php 页面时出现问题 错误是 Fatal error Call to undefined method MongoCollection findAndModify in C wamp www 我的代码是
  • 使用 Poedit 创建 POT 文件

    我正在拼命地尝试为我的 php 新应用程序创建一个目录 in 1 我创建了一个文件 trans php 其中放置了所有要翻译的值 例如 这是我的文件 2 我打开Poedit 在 路径 中这是我输入的内容 见图 然后我保存文件 php 的相同
  • yii2:抛出新异常的正确方法

    只是为了测试 我在模型中添加了这段代码 同时设置 debug true 和 false if packagedays lt 1 throw new yii base Exception package days cannot be less
  • 为什么 Stripe Checkout 不将客户姓名添加到客户记录中?

    我正在尝试从 Stripe Checkout 表单提交中检索各种数据 我只是使用 Stripe 仪表板中提供的 Stripe Checkout 代码 In my checkout submission completed我有一个正在尝试检索
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • PHP 中的 JS charCodeAt 等效项(具有完整的 unicode 和 emoji 兼容性)

    我在 JS 中有一个简单的代码 如果涉及特殊字符 我无法在 PHP 中复制它 这是 JS 代码 参见JSFiddle https jsfiddle net h8oca3qg 5 用于输出 var str t char t and speci
  • 新行分隔符不适用于 group_concat 函数

    我有一根绳子 name lastname name2 lastname2 包含数据库表中的值 我想显示它 喜欢 name lastname name2 lastname2 我使用 group concat 函数 它适用于逗号分隔符 但我需要
  • 字符串 a == 字符串 b 的规则 [重复]

    这个问题在这里已经有答案了 我试图了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是什么 例如这个片段 public static void main String hi String s1 lol String s2 lol S
  • PHP 中的并行处理 - 你是如何做到的?

    我目前正在尝试在 php 中实现一个作业队列 然后 队列将作为批处理作业进行处理 并且应该能够并行处理一些作业 我已经做了一些研究并找到了几种实现它的方法 但我并不太了解它们的优点和缺点 例如 通过多次调用脚本来进行并行处理fsockope
  • PHP随机输出数组元素

    我如何从大约 20 个元素的数组中随机回显 5 个元素 Thanks 这有效吗 values array rand input 5 或者 作为更灵活的功能 function randomValues input num 5 return a
  • 如何编辑 Woocommerce 单一产品元模板中显示的内容?

    我正在为客户做一些工作并使用 wordpress woocommerce 他们要求我将类别移动到我已经完成的单个产品页面上的产品名称下 但他们不希望它打印 类别 类别 1 类别 2 等 他们希望删除 类别 并且它实际上只列出类别的名称 而不
  • empty() 在对象的非空属性上返回 TRUE

    我遇到了一个非常奇怪且意想不到的问题 empty 正在返回TRUE由于我不知道的原因 在一处非空的房产上 class MyObject private property public function construct property
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • 在大文件中查找重复字符串

    一个文件包含大量 例如100亿 字符串 您需要查找重复的字符串 您有 N 个可用系统 您将如何找到重复项 埃里克森的答案可能是提出这个问题的人所期望的 您可以将 N 台机器中的每台机器用作哈希表中的一个存储桶 对于每个字符串 按顺序说出字符
  • 带缓存的简约 PHP 模板引擎,但不带 Smarty?

    有大量的问题 https stackoverflow com search q php template engine cache寻找 正确的 PHP 模板引擎 但它们都不专注于缓存 有谁知道一个轻量级 高质量 基于 PHP 5 的模板引擎
  • 如何使用多个分隔符拆分列表?

    基本上 我想在文本区域中输入文本 然后使用它们 例如 variable1 variable2 variable3 variable1 variable2 variable3 variable1 variable2 variable3 我知道
  • 将文件附加到 PHPMailer

    我目前正在开发一个项目 该项目将文件作为 blob 存储在数据库中 我需要将文件附加到电子邮件并通过 PHPMailer 发送出去 我熟悉 mail gt addAttachment 但是 这个函数似乎只接受文件路径 而我没有 我想知道是否

随机推荐

  • TDD 中的模拟值

    在书里GOOS http www growing object oriented software com 据说不要嘲笑价值观 http www mockobjects com 2007 04 test smell everything i
  • “Webdrivers”可执行文件可能具有错误的权限。请参阅 https://sites.google.com/a/chromium.org/chromedriver/home

    我环顾四周检查了这两个文档 但没有找到答案 我一直在尝试使用 InstaPy 作为 python 的 instagram api 在出现多个错误并假设 InstaPy 只是遇到一些问题后 我尝试使用 selinium 对其进行原始编码 插入
  • 使用 Gradle 将应用程序模块依赖项添加到 Android Studio 中的另一个应用程序模块中

    是否可以有 2 个应用程序模块 apply plugin com android application 在他们的 gradle 文件的头部 并且一个对另一个有依赖性 因此模块 A 依赖于模块 B 并且两者都是应用程序 dependenci
  • 在Python中将传递的字典“解包”到函数的名称空间中?

    在我所做的工作中 为了方便起见 我经常需要将参数分组为子集 d1 x 1 y 2 d2 a 3 b 4 我通过传递多个字典来做到这一点 大多数时候我直接使用传递的字典 即 def f d1 d2 for k in d1 blah d1 k
  • 如何删除tinymce中自动添加的p标签

    我使用的是tinymce 4 0 1 当您开始输入或按回车键时 它会自动添加 p 标签 如何动态删除这些 p 标签 然后将内容重新插入编辑器 您需要将以下行添加到 init 语句中 forced root block 所以 你的完整代码将是
  • PHP 函数与 jQuery AJAX?

    我有一个关于 PHP 函数 jQuery 和 AJAX 的问题 如果我的 php 索引中有一个像这样的按钮
  • 谷歌recaptcha Remoteip解释

    In the 验证码文档 https developers google com recaptcha docs verify它说remoteip参数是可选的 但我不明白它的目的 因为即使我发送与 REMOTE ADDR 不同的 IP 来自
  • 使用 KnpSnappyBundle 生成 jpg 时没有资源

    这似乎是一个已知问题 但我找不到解决方案 使用 KnpSnappyBundle 生成 jpg pdf 时 未加载 css 文件 在谷歌群组上 但没有提供答案 有没有人找到这个问题的解决方案 回答有点晚了 但我遇到了同样的问题 我使用资产的绝
  • 是否有可能有匹配所有有效正则表达式的正则表达式?

    是否可以仅使用正则表达式来检测给定字符串是否是有效的正则表达式 假设我有一些字符串 它们可能是也可能不是有效的正则表达式 我想要一个正则表达式与对应于有效正则表达式的那些字符串相匹配 那可能吗 或者我是否使用一些更高级别的语法 即上下文无关
  • jquery:嵌套标签和悬停()在 IE 中不起作用

    我有这样的结构 div span span span span span span span span div 我需要捕获容器的 mouseout 事件 所以我让 jquery 这样做 container hover function al
  • 在 TeamCity 5.1 通知中显示文件更改

    我想在 TeamCity 5 1 电子邮件通知中包含更改文件的列表 该通知会在构建成功或失败后发送给我的团队 我已经审查了在 TeamCity 5 1 中自定义通知 http confluence jetbrains net display
  • SwiftUI Widget iOS 14 渐变问题

    我想使用自定义颜色为我的小部件创建渐变颜色 当我只使用两种颜色时 我遇到了问题 结果没有应用其中一种颜色 但背景变成绿色 struct WeatherWidgetMediumView View var gradient LinearGrad
  • 为什么调用shared_from_this会调用std::terminate

    考虑这段代码 class A public std enable shared from this a public std shared ptr a f return shared from this int main A a std s
  • 实体框架:全局禁用删除

    我们正在开始一个新的应用程序 我们想使用实体框架 我们很少担心意外删除sql行 特别是意外设置相关数据等 我想禁用每个删除 因为我们只是用 validUntil 列标记每一行并且从不删除行 I saw 它可以通过 sql 中的角色来完成 h
  • 如何以编程方式更改 RecyclerView 中项目的位置?

    有没有办法将特定项目移动到特定位置RecyclerView using LinearLayoutManager以编程方式 你可以这样做 一些活动 片段 无论什么 List
  • 为什么连接字符串不适用于 EF 迁移?

    我创建了一个与 NuGet Gallery 实现一起使用的数据库 我可以在 sql manager 2012 中看到数据库 并且可以使用我的连接字符串从我编写的测试程序访问它 但是 当我尝试在包管理器控制台中运行 Update Databa
  • VB 中的类与模块

    在 VB 中使用模块而不是类有什么优势 如果有的话 它们有何不同 使用模块有哪些优点 缺点 在 VB 或 VB NET 中 我两者都使用 A Modules and B 类只有Shared功能 解决同样的问题 两者都可以让你从逻辑上grou
  • 删除所有早于 X 天的文件,但至少保留 Y 个最新的文件[重复]

    这个问题在这里已经有答案了 我有一个脚本 可以从备份目录中删除早于 X 21 天的数据库转储 DB DUMP DIR var backups dbs RETENTION 21 24 60 3 weeks find DB DUMP DIR t
  • 代号一个应用程序中的额外侧边菜单

    在我的应用程序中 我有一个右侧菜单 但似乎还有一个左侧菜单 仅包含后退按钮 没有菜单按钮 带有三条水平线 但如果触摸屏幕左边缘并拖动 则会出现菜单 我不明白为什么要创建它 但是有什么方法可以禁用或删除它吗 None
  • 在 PHP 中查找多个字符串位置

    我正在编写一个解析给定 URL 的 PHP 页面 我能做的就是仅找到第一个出现的值 但是当我回显它时 我得到另一个值而不是给定的值 这就是我到目前为止所做的 我知道可以使用循环 但我不知道循环体的条件 我怎