草庐IT

Find-Replace

全部标签

php - PHP 中 "filter_var"和 "preg_replace"之间的后端区别是什么?

我有来自数据库(非常受控的输入)的数字,它们前后都有下划线。它们是这样存储的:_51__356_它们不会以任何其他格式存储,但有时我只需要从中获取数字。我选择使用其中之一$x=filter_var($myNumber,FILTER_SANITIZE_NUMBER_INT);或$y=preg_replace("/[^0-9]/","",$myNumber);我不确定后端两者之间的细微差别,但它们都能产生我所需要的(无论如何,我是这么认为的),所以我使用哪个并不重要。使用这些选项的优缺点是什么?(例如,是否有人使用数组或其他我可能需要了解的奇怪事物?有人使用了太多资源吗?)

PHP 强制 str_replace 只替换一个结果

这个问题在这里已经有了答案:Usingstr_replacesothatitonlyactsonthefirstmatch?(23个回答)关闭7年前。这是完美的工作:$replaceLyrics=str_replace('story','_____','ThestoryofmylifeItakeherhomeIdriveallnighttokeepherwarmandtimeIsfrozen(thestoryof,thestoryof)');echo$replaceLyrics;输出:The_____ofmylifeItakeherhomeIdriveallnighttokeepher

PHP str_replace 空格的任意组合

我想确保字符串中的/字符始终在两边填充一个空格。对于PHP,我目前使用的是str_replace,但我不能保证所有情况都适用于任意数量的空格。$original="Yes/No";echostr_replace("/","/",$original)."\n";echostr_replace("/","/",$original)."\n";echostr_replace("/","/",$original)."\n";我知道我传递给str_replace函数的第一个参数/参数是错误的,因为它没有考虑周围的字符。下面是我想要实现的一些例子:OriginalDesired==========

php - Laravel - [PDOException] : Could not Find Driver in PostgreSQL - MAC OS

我在stackoverflow上看了很多关于这个问题的帖子,但我仍然遇到同样的问题:php.ini文件中列出了以下内容:extension=php_pdo_pgsql.dllextension=php_pgsql.dll环境文件:DB_CONNECTION=pgsqlDB_HOST=127.0.0.1DB_DATABASE=oweDB_USERNAME=postgresDB_PASSWORD=password我重新启动了Apache,重新启动了计算机,并且在执行迁移时出现了以下错误:me$phpartisanmigratePHPWarning:PHPStartup:Unabletolo

php - 如何使用 preg_replace 用数组中的字符串替换子字符串? (PHP)

我有一个包含这些值的数据数组:Array([id]=>1[myid]=>9[date]=>2014-01-30[user]=>17[reason]=>sometexthere...)这个字符串包含引用数据数组索引的数字:$columns='(0)as"id",(1)as"myid",(2)as"date",(3)as"user",(4)as"reason"';是否可以更改括号中的数字,包括将括号中的数字更改为数组中的适当值?我知道如何使用(string)preg_replace((array)$patterns,(array)$replacements,(string)$subject

php - SimpleHTMLDom : Call to a member function find() on array

所以我想在大型html页面中循环遍历特定的TD。我正在使用simplehtmldom来实现这一目标。问题是如果不把每一步都放在foreach中,我就无法让它工作。这是我的phpinclude('../inc/simple_html_dom.php');$html=file_get_html("http://www.bjork-family.com/f43-london-stories");//IjustputthedomofpagebodyintoTEST$test=$html->find('#page-body');foreach($test->find('img')as$eleme

php - 使用 preg_replace 时如何忽略字符串中的某些单词

我想做的是$var="[h1]ThisisJustatext,[h1]andthisinsideit[/h1]Thisjustexample[/h1]";$output=preg_replace("/\[h1\](.*?)\[\/h1]/","$1",$var);echo$output;这里我想忽略第一个[/h1]来使结果正确,我该如何实现呢?有没有办法只获取第一个和最后一个标签?我不知道我应该做什么或尝试,我还不够好,无法尝试,已编辑输出是ThisisJustatext,[h1]andthisinsideitThisjustexample[/h1]但我希望得到ThisisJustat

使用数组的 php preg_replace - 具有重音字符的第一个或最后一个字母不起作用

在这个例子中,我有单词así,它以带重音的i字符结尾。$str="Astringcontainingthewordasíwhichshouldbechangedtocolorpurple";$prac[]="/\basí\b/i";$prac2[]="\$0";$str=preg_replace($prac,$prac2,$str);echo$str;它不会改变。但是,如果我有一个不以重音字符结尾或开头的单词,它确实会改变。例如:$str="Astringcontaininganotherwordwhichshouldbechangedtocolorpurple";$prac[]="/

php - 如何使用 preg_replace 去除过多的单个空格

我们正在从PDF文件中提取文本,结果中包含格式错误文本的频率很高。特别是在单词的字符之间添加空格。例如SEATTLE返回为SEATTLE。是否有preg_replace的RegEx表达式可以在n个单字符“单词”的情况下删除任何空格?具体来说,从超过3个单个字母字符且由空格分隔的字符串中删除空格?如果在谷歌上搜索了一段时间,但甚至无法想象如何构建表达式。如评论中所述,我不希望删除所有空格,但仅当出现>3个单个字母字符时才删除,例如WelcometotheGreaterSEATTLEarea应该变成WelcometotheGreaterSEATTLEarea。结果将用于全文搜索,因此不区分

php - 用于 MS SQL Server 的 PDO DBLIB 驱动程序 : Cannot find php_pdo_driver. h

我正在按照下面链接中的教程在我的MacOsMojave中编译PDO的DBLIB驱动程序。https://github.com/BellevueCollege/public-docs/blob/master/PHP/configure-mssql-pdodblib-mac.md问题是,当我运行下面的代码时:$cdphp-7.2.9/ext/pdo_dblib$phpize$./configure--with-php-config=/usr/bin/php-config--with-pdo-dblib=/usr/local/$make$sudocpmodules/pdo_dblib.so/