php str_replace函数问题

标签 php string str-replace

我正在尝试使用 php 将这个原始字符串转换为下面的结果。

ORIGINAL: "The quick <font color="brown">brown</font> fox jumps over the lazy dog"

RESULT:"god yzal eht revo spmuj xof <font color="brown">nworb</font> kciuq ehT"

我到目前为止所做的解释如下。

首先,从 ORIGINAL 中剥离 HTML 标签。

$originalStr = "The quick <font color='brown'>brown</font> fox jumps over the lazy dog";

$stripTags = strip_tags($originalStr);

这导致 The quick brown fox jumps over the lazy dog ,

其次,我使用 strrev 函数反转结果和单词“brown”

$reverseStr = strrev($stripTags);
$brown = strrev("brown");

这个结果对 god yzal eht revo spmuj xof nworb kciuq ehT

第三,我正在尝试使用str_replace 函数 从reverseStr 中找到$brown,并将其替换为$openFont $brown $closeFont,如下所示。

$openFont = "<font color='brown'>";
$closeFont = "</font>";

$result = str_replace($brown, $openFont.$brown.$closeFont, $reverseStr);
echo "result -->" . $result . "<br/><br/><br/>";

This results to god yzal eht revo spmuj xof kciuq ehT,与结果不同。

似乎 font () 标签中的特殊字符可能是阻止 str_replace 替换字符串的问题。

$result = str_replace($brown, "TEST", $reverseStr);
echo "result -->" . $result . "<br/><br/><br/>";

这个结果对 god yzal eht revo spmuj xof TEST kciuq ehT

有谁知道 str_replace 不接受特殊字符?知道我应该如何解决这个问题?

如果有其他方法可以解决问题,我也将很高兴听到您的建议。

(*这是我在算法测试网站中尝试解决的实际问题之一)

更新:想到字体标签在哪里,我觉得很愚蠢。由于 tag 是用来改变字体颜色的,所以一开始它工作得很好。非常感谢大家的宝贵时间!

最佳答案

如果是我,我会这样做(经过全面测试):

// Original string
$str = 'The quick <font color="brown">brown</font> fox jumps over the lazy dog';

// Strip the font tag
$str = strip_tags( $str );

// Convert string to array
$arr = str_split( $str );

// Reverse the array
$rra = array_reverse( $arr );

// Convert array back to string
$str = implode( $rra );

// Add font tag back in
$str = str_replace('nworb', '<font color="brown">nworb</font>', $str);


// Result
echo $str;

关于php str_replace函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45874442/

相关文章:

php str_replace 问题

javascript - 将 JSON 保存到文件经常中断

php - 执行 PDO 查询将绑定(bind)参数从整数更改为字符串

android - Java :String replace to convert time

java - 是否可以在替换函数中使用 OR 条件/运算符?

php - 更改 mysql -joomla 中的文件名并存储在数据库中具有唯一的名称?

java - 如何在不分割字符串的情况下用其他字符串替换字符串

PhP 如何将 session 数组发送到 MySQL 表?

php - Symfony:如何从文件加载自定义捆绑配置?

c - 一个小查询,C 中的字符串