搜索并替换特殊字符 PHP

2023-12-05

我正在尝试搜索并替换从 csv 文件解析的字符串中的特殊字符。当我用 vim 打开文本文件时,它显示字符是 。我一生都无法弄清楚这是要与 preg_replace 一起使用的字符。任何帮助,将不胜感激。

Thanks,

克里斯·爱德华兹


0x95 可能应该代表字符 U+2022 Bullet (),编码为Windows 代码页 1252。您可以使用以下方法在字节字符串中删除它:

$line= str_replace("\x95", '', $line);

或者你可以使用iconv转换数据的字符集cp1252 to utf8(或者您想要的任何其他编码),如果您有一个可以可靠地读取非 ASCII 字符的 CSV 解析器。否则,您可能想要删除all非 ASCII 字符,例如:

$line= preg_replace("/[\x80-\xFF]/", '', $line);

如果您的 CSV 解析器是fgetcsv()你有问题。理论上,您应该能够在将字符串传递给之前将其作为字符串的预处理步骤str_getcsv()(PHP 5.3)代替。不幸的是,这也意味着您必须自己读取该文件并逐行拆分它,并且考虑到引用的 CSV 值可能包含换行符,这并不是一件容易的事。当您编写了正确处理的代码时,您几乎已经编写了一个 CSV 解析器。因此,您实际上要做的是将文件读入字符串,进行预处理更改,将其写回临时文件,然后fgetcsv() read that.

另一种方法是对返回的每个字符串进行后处理fgetcsv()单独。但这也是不可预测的,因为 PHP 通过使用系统默认编码解码来破坏输入,而不是仅仅给你该死的字节。 Windows 之外的默认编码通常是 UTF-8,它本身不会读取 0x95 字节,因为那是无效的字节序列。虽然你可以尝试使用来解决这个问题setlocale()更改系统默认编码,that这是非常糟糕的做法,它无法与您运行的任何其他依赖于系统区域设置的应用程序很好地配合。

总而言之,PHP 内置的 CSV 解析功能非常糟糕。

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

搜索并替换特殊字符 PHP 的相关文章

  • 如何将对象(模型类型对象)插入到 Laravel 中 Collection 对象的特定索引号处?

    我读过戴尔 里斯的代码明亮 https daylerees com codebright 了解更多关于雄辩的信息Collection在 Laravel 中使用 还做了一些其他研究 但找不到我正在寻找的答案 我想插入一个对象 Model输入对
  • Facebook 扩展权限

    更新2 好的 通过更改使其 有点 工作 loginUrl facebook gt getLoginUrl array canvas gt 1 fbconnect gt 0 req perms gt publish stream next g
  • 从 Symfony2 中的 http_basic auth 注销

    每当我去 admin logout 我已正确重定向到项目的根目录 但在访问时仍处于登录状态 admin 因为没有提示我输入凭据 这是我的配置 安全 yml security firewalls admin area pattern admi
  • 使用 ImapMailbox.php 按日期对 Imap 邮箱进行排序

    我有一个客户支持系统 它会在收到电子邮件时创建电子邮件 我曾经使用后缀和特殊配置来获取电子邮件以添加额外的功能 例如 我想包含从电子邮件发送的附件 系统不会执行此操作 而是创建一封带有主题的电子邮件 因此我可以通过匹配主题来包含附件 我使用
  • 使用 PHP 分割逗号分隔名称

    我的名字格式为姓氏 名字 在我的数据库中 第一个和最后一个字段都有不同的字段 我想使用 PHP 读取逗号之前的所有内容作为姓氏 以及逗号之后的所有内容作为名字 实现这一目标的最佳方法是什么 list Lastname Firstname e
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • 如果端口不是 80,.htaccess 重定向到错误页面

    我正在运行一个便携式服务器 http www server2go web de 通过 USB 棒 问题是我还在我的本地计算机上安装了 WAMP 并且 Apache 不知何故在 Windows 启动时启动 因为一些我现在不记得的随机原因并且无
  • 提交简单 PHP 表单时出现禁止错误

    我有一个不复杂的问题 这似乎比应有的更复杂 我有一个简单的表单 用于向网站添加内容 有些字段需要输入html 然而 当您在表单的不同部分输入某些 html 元素时 它会认为它讨厌您并抛出禁止的 403 错误 这是下面的表格
  • PHP正则表达式替换链接url

    我需要添加href 之前http 如果这http 不遵循href or src 以下代码部分有效 部分意味着它考虑 a href 只但不src a s i a href target blank gt 0 a str 预先感谢各位的回复 s
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而
  • 如何验证上传的文件是视频?

    我的服务器上有一些非常敏感的信息 因此安全性是一个大问题 用户需要能够上传视频 我知道允许用户上传文件会带来安全威胁 因为没有 100 的方法可以阻止他们上传非视频 但我显然可以选择服务器将保留哪些文件 我知道检查文件扩展名是不够的 检查
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • Symfony2 - 在自定义验证器中调用 EmailValidator

    我正在创建一个自定义验证器约束来验证 联系人 类似于 John Doe 电子邮件受保护 gt 遵循Cookbook http symfony com doc current cookbook validation custom constr
  • Google Drive V3、Google API 客户端 2.0 - 批量上传失败

    使用 Google Drive V3 和 API v2 0 主分支进行批量上传失败 我已经修改了https github com google google api php client blob master examples batch
  • 在 Elasticsearch php API 中使用多种类型或索引

    我想使用查询多种类型和索引Elasticsearch PHP API 但我不知道怎么办 我应该将类型和索引的数组传递给 params params index index array of indices params type types
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 将 Hbase 与 PHP 集成 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经安装了 Hbase 现在我正在寻找一些 PHP 库来将 hbase 与 PHP 集成 我尝试了 2 个库 第一个是我尝试与 th
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male

随机推荐

  • 无法将参数从 int * 转换为 const int *&

    我确实明白 const T 是对 const 类型 T 的指针的引用 该指针具有低级 const 因此它不会更改它指向的值 但是 以下代码在编译时失败并给出以下消息 error C2664 void pointer swap const i
  • 如果我在 main() 函数之后放置一个类,C++ 需要编写什么代码

    我正在观看一些有关 C 的视频教程 我知道您必须在使用或调用函数 类之前定义它 但我喜欢将 main 函数放在顶部 而将其他所有内容放在 main 函数下方 我知道如果我在主函数下面定义一个函数 我必须在使用它之前声明它 但是类呢 我需要在
  • C++ 判断类是否可以使用对象 - 文本RPG游戏

    我面临以下设计问题 TL TD 需要确定英雄 类 是否可以使用特定对象 而有很多英雄实现 我有 Hero 类的 3 个子类 每个子类都可以使用特定的物品 对于 Weapons hpp 我有剑 锤子 十字弓 弓 魔杖 法杖 战士可以使用剑或锤
  • 如何防止用户使用后退按钮成功登录后返回登录页面

    我正在开发 MVC3 应用程序 但遇到了登录安全问题 场景是当用户使用他 她的用户名和密码登录时 如果正确 他 她将被重定向到他们的主页 但是 如果他们单击浏览器后退按钮 他们就会返回到登录页面 就我而言 这是我不想要的 就像 facebo
  • 使用 netbeans 调试 cakephp - 无变量

    我按照这些说明使用 netbeans 和 xdebug 设置 cakephp 调试http www tiplite com cakephp debug in netbeans 我让它工作了 但是当我到达断点时我看不到任何变量 有一个选项可以
  • 如何在 OpenCV 中估计两个相机的位置?

    我有来自两个图像的两组对应点 我估计了编码摄像机之间转换的基本矩阵 E mask cv2 findEssentialMat points1 points2 1 0 然后我提取了旋转和平移分量 points R t mask cv2 reco
  • 如何更改 javascript 变量的字体?

    我正在尝试制作一个类似于 cookie clicker 的游戏 这是我的代码的一部分 var clicks 0 function updateClickCount document getElementById clickCount inn
  • .NET 4 出现“找不到指定的过程”错误

    我正在使用 Visual Studio 2012 11 0 51106 01 Update 1 在 64 位 Windows 7 机器上进行开发 我有一个支持项目 它将一些 C 代码编译成 32 位 DLL 在我的标题中我有 define
  • 如何在 Ubuntu 中增加 docker 磁盘映像大小

    我正在尝试增加 ubuntu 上的 docker 映像大小 当我执行 docker info 时 我得到以下信息 Containers 0 Running 0 Paused 0 Stopped 0 Images 0 Server Versi
  • C 从指向结构体第二个成员的指针获取指向结构体的指针是否合法?

    我想知道前面的行是否有注释 这是合法的C吗 在函数中dumpverts 底部 是否合法 C include
  • 如何让rxjs大理石同步分组只占用一帧

    根据https github com ReactiveX rxjs blob master docs app content guide testing marble testing md marble syntax abc on fram
  • 在 Spring AOP 中使用 @AfterReturning 修改类的值

    如何使用 AfterReturning建议修改值 它适用于除字符串之外的任何对象 我知道字符串是不可变的 以及如何在不更改 AccountDAO 类中 saveEverything 函数的返回类型的情况下修改字符串 这是代码片段 Compo
  • 如何比较两个函数的外延等价性,如 (λx.2*x) == (λx.x+x)?

    有没有办法比较两个函数是否相等 例如 x 2 x x x x 应该返回 true 因为它们显然是等价的 众所周知 一般函数相等性通常是不可判定的 因此您必须选择您感兴趣的问题的子集 您可以考虑其中一些部分解决方案 普雷斯堡算术是一阶逻辑 算
  • iPhone的NSUserdefaults是数据库或plist

    我无法正确获取 NSUserDefaults 概念 那是plist文件的数据库吗 它是在应用程序重新启动之间保留的键值存储 它的实现方式与您如何使用它几乎没有关系
  • 递归爬楼梯难题的 Java 基准

    这个现在非常常见的算法问题是监考人员在白板考试期间提出的 我的工作是观察 倾听并客观地判断给出的答案 但我既无法控制所提出的问题 也无法与回答者互动 有五分钟的时间来分析问题 候选人可以编写项目符号 伪代码 在实际代码编写过程中是允许的 只
  • 在 xml 中注入属性失败(spring-ws 配置)

    我正在使用 Spring WS 并具有以下 spring ws servlet xml 文件 defaultURI 和编组器的注入不起作用 因为当我到达服务客户端中的方法时 这些属性为空 所发生的情况是 使用正确的值调用 setter 但在
  • 在maven项目中运行scala应用程序

    我正在尝试使用 Maven 来处理 Eclipse 中的 scala 项目中的依赖关系 但是一旦项目转换为maven 应用程序将不再运行 以下是重现步骤 1 新的scala项目 项目名称 测试 finish 2 新的scala对象 名称 你
  • 模板始终使用指令中的旧范围值进行编译

    我有一个像这样工作的指令 http jsfiddle net smithkl42 cwrgLd0L 23 App directive prettify compile function compile var templateFn retu
  • 从文件中提取单词

    我使用 python 打开一个文件 以查找打开的文件中是否存在预定义的单词集 我在列表中获取了预定义的单词集并打开了需要测试的文件 现在有什么方法可以在 python 中提取单词而不是行 这让我的工作变得更加轻松 import re def
  • 搜索并替换特殊字符 PHP

    我正在尝试搜索并替换从 csv 文件解析的字符串中的特殊字符 当我用 vim 打开文本文件时 它显示字符是 我一生都无法弄清楚这是要与 preg replace 一起使用的字符 任何帮助 将不胜感激 Thanks 克里斯 爱德华兹 0x95