php 使用curl 和 preg_match_all [重复]

2024-01-24

我觉得我失去了一些东西。我正在使用以下代码从表中提取一些数字。尽管看起来很简单,但我似乎无法打印任何内容。我正在放置我的代码和下表的示例。请帮我找出我的错误。我希望它只打印出每个单元格中的数字。

//gets the site
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://site.org');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch); 

//parse the data
preg_match_all('/<td align=right>(\d+?)</td>/', $response, $matches2);

//prints the parsed data
print_r($matches2[0]);

这是该表的示例。

<center><table border=1><tr><th align=left>Address</th><th width=50>0</th><th width=50>1</th><th width=50>2</th><th width=50>3</th><th width=50>4</th><th width=50>5</th><th width=50>6</th><th width=50>7</th><th width=50>8</th><th width=50>9</th></tr><tr><td>N7:0</td>
<td align=right>1</td>
<td align=right>1</td>
<td align=right>1</td>
<td align=right>99</td>
<td align=right>0</td>
<td align=right>0</td>
<td align=right>0</td>
<td align=right>0</td>
<td align=right>0</td>
<td align=right>0</td>
</tr><tr><td>N7:10</td>
<td align=right>0</td>
<td align=right>7300</td>
<td align=right>16400</td>
<td align=right>3300</td>
<td align=right>2200</td>
<td align=right>6100</td>
<td align=right>28000</td>
<td align=right>18000</td>
<td align=right>0</td>
<td align=right>0</td>
</tr></table></center><hr width=25% align=center>

PHP 错误报告应该给你一个提示。 我强烈建议在开发过程中将 error_reporting 设置为 E_ALL 并将 display_errors 设置为“on”。这会给您一个提示,说明为什么您没有得到任何结果:

PHP Warning:  preg_match_all(): Unknown modifier 't'

因此,您应该在正则表达式内的斜杠中添加转义符,因为您将其用作分隔符。

preg_match_all('/<td align=right>(\d+?)<\/td>/', $response, $matches2);

与往常一样,我建议使用另一个分隔符,从而使正则表达式更具可读性。我一般选择“~”。这看起来像:

    preg_match_all('~<td align=right>(\d+?)</td>~', $response, $matches2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 使用curl 和 preg_match_all [重复] 的相关文章

随机推荐

  • time.perf_counter() 或 time.process_time() 用于性能测量?

    我了解 time perf counter 测量经过的总时间 即使进程当前未运行 然而 time process time 仅测量进程实际运行的时间 如果我只是衡量一个功能的性能 这两个中哪一个是首选 由于我实际上对 CPU 花在处理其他进
  • 使用 python 的 eval() 与 ast.literal_eval()

    我遇到一些代码的情况eval 提出了一个可能的解决方案 现在我从来没有使用过eval 但在此之前 我已经了解到很多有关它可能造成的潜在危险的信息 也就是说 我对使用它非常谨慎 我的情况是我有用户提供的输入 datamap input Pro
  • Windows 进程什么时候会耗尽内存?

    在 Windows Server 2003 Enterprise Edition SP2 下 3GB 开关未启用 据我了解 一个进程的最大可寻址内存是 4GB 我可能是错的 那是 2GB 的私有字节和 2GB 的虚拟字节吗 当达到私有字节限
  • 如何使用 sqlalchemy 创建带有日期范围的排除约束

    我知道只需使用原始 sql 我就可以添加排除约束 如下所示 ADD CONSTRAINT unique daterange constraint EXCLUDE USING gist foo WITH daterange start dat
  • PyInstaller:模块未包含在 --onefile 中,但与 --onedir 一起工作正常

    我正在使用 PyInstaller 将我的应用程序捆绑到一个 exe 文件中 问题是它与 onedir 选项一起工作正常 但在使用 onefile 构建时找不到模块 onedir 和 onefile 在构建过程中都会说 lt gt INFO
  • 显示大型结果集

    这是我的问题 我需要存储一个lot日志消息 并认为将其保存在 SQLite3 数据库中以便能够轻松搜索和过滤它是明智的 我将在标准列表小部件中显示日志消息 使用 wxWidgets 该列表将有几列 并且可以由用户排序和过滤 现在 我不确定处
  • Excel 重命名其他计算机上的 Activex 控件

    我有一个带有 Activex 控件 组合框 命令按钮 选项按钮 复选框 的工作表 在我的计算机上 我已重命名所有控件 例如 CButtonPMR OButton Comp 等 但是当我在其他计算机上打开文件时 所有控件都被重命名为默认的默认
  • 在非 Windows 平台(Linux 或 Mac)上使用 Python 处理 Access 数据库

    我想访问 Microsoft Access 数据库中的数据 我有一些 accdb 和 mdb 文件 想用 Python 读取它们 根据我的研究 pyodbc只能在Windows平台上使用 但我正在Mac OS X上工作 我是Python新手
  • 使用弱密钥暴力破解 DES

    我正在学习密码学课程 但正在做一项作业 说明如下 明文 plain6 txt 已使用 DES 加密为 encrypt6 dat 使用 64 位密钥作为 8 个字符的字符串给出 64 位 其中每第 8 位被忽略 所有字符均为字母 小写或大写
  • 有没有一种好的方法将 std::minmax(a, b) 分配给 std::tie(a, b) ?

    std tie a b std minmax a b 我认为这是直观的代码 干净且易于理解 太糟糕了 它没有按预期工作 因为std minmax https en cppreference com w cpp algorithm minma
  • php:删除Windows上的共享内存

    这段代码 shmop delete shmop close 不删除共享内存 一个实验 shmid shmop open 1234 a 0 0 var dump shmid yields bool false 当然 但 shmid shmop
  • C++ Chrono 判断一天是否是周末?

    我的日期格式为年 int 月 int 和日 int 例如 2018 10 12 表示 2018 年 10 月 12 日 有没有办法可以使用 C Chrono 库和这些整数来确定我的 日期 是否是周末 如果没有 实现这一目标的最简单的替代方法
  • SignalR 2 长轮询“协议”请求在未本地运行时超时

    目前我有一个非常健谈的应用程序 需要单例的支持 参见下面的代码 我升级到 SignalR 2 0 并按照升级指南进行操作 但是将其部署到环境后 有时每个 协议 的所有请求都会失败 并且信号器会中断 而当它没有中断时 推送速度会非常慢从服务器
  • 将输出格式设置为小写

    我需要改变输出仅小写 现在的输出是Entertainment 我怎样才能得到它entertainment 完整的代码部分是 a href class browse cat span span img src a
  • Angular 材料表具有可扩展行,更改选项卡时自动扩展以 stackBlitz 为例

    我有一个带有可扩展行的角度材料表 在每一行中 我都有多个选项卡 在第一个选项卡上 我有另一个带有可扩展行的表 一开始所有行都折叠起来 到目前为止一切顺利 当我单击一行时 该行会展开 到目前为止 效果很好 当我更改选项卡并返回时 我的所有行都
  • 如何创建“可停靠”表单?

    如何创建类似于 Visual Studio 中的窗口的 可停靠 表单 我用过罗伟芬的 DockPanel Suite 效果很好 它是一个开源库 很好地模仿了 Visual Studio 的对接系统 包括嵌套对接 浮动窗口 选项卡式窗口等 如
  • Python 在迭代列表时不会删除列表中的所有项目

    我有一本字典和一个列表 如下所示 correction u drug ind u Necrosis date exp drugs u drug aus u Necrosis u drug nz u Necrosis u drug uk u
  • 如何获取 css 伪元素 :checked 以在 IE7 + IE8 中工作?

    我正在尝试在 IE 7 8 中将选定的单选按钮设置为与未选定的单选按钮不同的样式 我尝试过选择器 它解决了问题 但也因 css 背景图像设置为隐藏而产生了其他问题 有谁知道另一个可以解决 IE 伪问题的 JS 库吗 你试过IE9 js吗 h
  • JavaFX 对话框删除标题装饰

    有没有一种快速方法可以删除 JavaFX 中的对话框标头 或者我应该去创建自己的对话框 TextInputDialog dialog new TextInputDialog dialog setTitle create DATABASE d
  • php 使用curl 和 preg_match_all [重复]

    这个问题在这里已经有答案了 我觉得我失去了一些东西 我正在使用以下代码从表中提取一些数字 尽管看起来很简单 但我似乎无法打印任何内容 我正在放置我的代码和下表的示例 请帮我找出我的错误 我希望它只打印出每个单元格中的数字 gets the