草庐IT

php - 替换字符串中子字符串每次出现但最后一次出现的有效/简单方法(str_replace_except_last)?

设想以下输入和str_replace_except_last($replace_except_last,$replacement,$text)之后的所需输出:func(".","",12.833331.3198912.980289012.92)=>128333313198912980289012.92func(".","",31.0)=>31.0func(".","",8)=>8func(".","",9190.1.1.1....1.1.....1)=>919011111.1func(".","",98909090....)=>98909090.func("beer","","Mybe

PHP str_replace 函数

是否可以使用str_replace()并在替换中使用函数?$value="gal($data)";$replace=str_replace($dat,$value,$string);gal($data)是一个函数,我需要为这个函数替换一个代码并显示,但脚本最后只给我这个gal($data),函数什么都不显示是否可以使用str_replace()来替换代码并用函数或一些类似的方法替换? 最佳答案 PHP有一个名为preg_replace_callback的函数这样做。当您将回调函数传递给它时,它将通过您的函数传递每个匹配项。您可以根据

php - 使用 preg_replace 将绝对 url 转换为相对 url

(我搜索了一下,发现了很多关于相对于绝对url转换的问题,但没有关于绝对到相对的问题。)我想从表单字段中获取输入并以相对URL结尾。理想情况下,这将能够处理以下任何输入并以/page-slug结束。http://example.com/page-slughttp://www.example.com/page-slughttps://example.com/page-slughttps://www.example.com/page-slugexample.com/page-slug/page-slug也许还有更多我没有想到的...?编辑:我也希望它适用于相对URL为例如/page/pos

php - 在 PHP 中具有动态正则表达式的类似主干的路由器

我已经编写了一个PHPController,但我正在重写我的代码,这样我就可以拥有类似BackboneRouter的JSON路由,将URI模式映射到PHPClass::method组合,或直接映射到HTML文档,然后交付给客户,像这样:{"/home":"index.html","/podcasts":"podcasts.html","/podcasts/:param1/:param2":"SomeClass::someMethod"}Backbone动态创建正则表达式以将路由与URL匹配。我查看了主干代码,并提取了以下代码(稍作修改):function_routeToRegExp(r

php - 将 '\t ' 等特殊字符转换为 "\t "(真正的制表符)

我想在我的网站上制作一个CSV文件导入器。我希望用户选择分隔符。问题是提交表单时,分隔符字段存储为“\t”,例如,因此当我解析文件时,我搜索字符串“\t”而不是真正的TAB。它对每个特殊字符(如\r、\n等)执行相同的操作...我想知道在不使用像这样的数组的情况下将这些字符转换为它们的真实表示的方法或函数:''=>"\t"'r'=>"\r"... 最佳答案 您可能应该决定允许哪些特殊字符并创建一个像这样的函数:functiontranslate_quoted($string){$search=array("\\t","\\n","\

php - 替换字符串中的最后一个单词

$variable='putreturnsbetweenparagraphs';这个变量的值每次都会改变。如何在最后一个词前添加一些文字?比如,如果我们想添加'and',结果应该是(对于这个例子):$variable='putreturnsbetweenandparagraphs'; 最佳答案 您可以使用strrpos()找到最后空格功能:$variable='putreturnsbetweenparagraphs';$lastSpace=strrpos($variable,'');//19然后,取两个substrings(在最后一

php - 无法计算出 php str_replace() 来删除逗号

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭6个月前。Improvethisquestion在一个PHP项目中,我有:$string="1,555";str_replace(',','',$string);echo$string;//isstill1,555str_replace不会删除逗号。如果我var_dump。我得到string(5)"1,555"有什么想法吗?我只需要删除逗号以便

php - 如何在 PHP 中匹配感叹号 (!)?

我想匹配以!开头的驼峰式单词,例如$line中包含的!RedHat。我正在使用带有Suhosin-Patch(cli)的php5.3.10-1ubuntu2。我正在尝试以下操作:$line=preg_replace("!([A-Z])","$1",$line);结果:PHP警告:preg_replace():没有结束分隔符“!”找到$line=preg_replace("\!([A-Z])","$1",$line);结果:PHP警告:preg_replace():分隔符不能是字母数字或反斜杠$line=preg_replace("[!]([A-Z])","$1",$line);结果:P

php - 如何在 PHP 中使用 preg_replace 匹配俄语单词?

如何在PHP中匹配字符串(也是俄语)中的俄语单词?例如这样的事情:$pattern='/слово/';preg_replace($pattern,$replacement,$string_in_russian)我试过了utf8_encode和htmlentities为$pattern使用UTF-8标志,但它没有用。我还应该对$string_in_russian进行编码吗?更新:/u标志的建议没有用,所以我放置了我需要它的实际代码。它来自Wordpress的词汇表插件(我的网站已正确设置为使用俄语,它确实有效,但在本例中无效)。所以这是代码$glossary_title=$glossa

php - 在 PHP 中使用 str_replace() 将\n 替换为 ''

我有以下代码$s='\ntest@gmail.com\n';$s=str_replace('\n','',$s);echo$s;我想替换'\n'字符''但它不适用于上面的代码。我发现它是\n是echoord(substr($s,0,1));的ascii值为10的新行字符它不工作。我不清楚不使用上述代码的确切原因是什么。请帮忙。 最佳答案 您需要将\n放在双引号中。在单引号内,它被视为2个字符'\'后跟'n'试试下面的代码:$s="\ntest@gmail.com\n";$s=str_replace("\n",'',$s);echo$