PHP的strlen函数显示数组元素长度不同

3

我有一个问题。我有一个存储在变量中的字符串。我使用explode函数将该字符串拆分成数组。但是当我将该字符串作为数组元素进行echo时,strlen函数显示不同的长度。以下是我的代码

 echo $schedule = 'Early Evening 6pm-9pm Tuesday, Early Evening 6pm-9pm Wednesday';
    $scr = explode(",",$schedule);
    $sc = array_map('trim', $scr);
    print_r($sc);
    echo strlen($sc[0]);
    echo $sc[0];
    echo '<br />';
    echo 'string "Early Evening 6pm-9pm Tuesday" has '.strlen('Early Evening 6pm-9pm Tuesday'). ' chars<br />';
if(in_array('Early Evening 6pm-9pm Tuesday', $sc)){ echo 'yes'; } else { echo 'no'; }

以下是输出结果:

        Early Evening 6pm-9pm Tuesday, Early Evening 6pm-9pm Wednesday

        Array ( [0] =>
        Early Evening 6pm-9pm Tuesday [1] => Early Evening 6pm-9pm Wednesday

        ) 
    151 //length of first element of array
        Early Evening 6pm-9pm Tuesday //first element of an array
        string "Early Evening 6pm-9pm Tuesday" has 29 chars
no //I need yes here

当我执行这段代码时,我得到了预期的结果。周围的代码是什么样子的? - Boldewyn
你在结尾得到了yes吗? 我对这个if语句得到了no。 if(in_array('Early Evening 6pm-9pm Tuesday', $sc)){ echo 'yes'; } else { echo 'no'; } - Riz
这是另一回事:http://sandbox.onlinephpfunctions.com/code/b5f94476ca37fa91c642572116ffe114f7401860 - AbraCadaver
实际上,我正在通过一个函数获取字符串,该函数为$schedule = bp_get_the_profile_field_value();。因此,在我正在执行的实际代码中,我有一个函数bp_get_the_profile_field_value()而不是字符串,并且这个函数给我字符串。这里是我的实际代码,但它没有运行http://sandbox.onlinephpfunctions.com/code/58607a646367007a5f7433dbcb71ab8c50a53beb - Riz
我应该编辑我的问题吗? - Riz
@Riz 啊,做出假设的危险。 :) - nl-x
1个回答

1
我认为您的字符串包含HTML标签,但您在浏览器中看不到它们。

尝试添加

$sc = array_map('htmlspecialchars', $scr);

在您的第三行后使它们可见,或查看输出页面的源代码。

我认为我们正在接近解决方案。使用上述代码,我可以看到我的字符串以及HTML元素。数组([0] =><p><a href="http://dev.optimizebusinessgrowth.com/gopaperboy/members/?s=Early+Evening+6pm-9pm+Tuesday" rel="nofollow">Early Evening 6pm-9pm Tuesday</a> [1] => <a href="http://dev.optimizebusinessgrowth.com/gopaperboy/members/?s=Early+Evening+6pm-9pm+Wednesday" rel="nofollow">Early Evening 6pm-9pm Wednesday</a></p>)。请告诉我如何删除这些HTML元素,以便我可以获得简单的“字符串 Early Evening 6pm-9pm Tuesday, Early Evening 6pm-9pm Wednesday”。 - Riz
谢谢,已经完成了。这对我非常有帮助。我使用strip_tags()函数来删除HTML字符。 - Riz
只需在第4行执行 $sc = array_map('strip_tags', $sc); 即可删除(并首先删除您为我添加的 htmlspecialchars 行)。 - nl-x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接