PHP strpos()和str_replace()

时间:2017-05-23 14:31:38

标签: php str-replace strpos

我的小PHP脚本出了问题。

我的代码应该像论坛软件一样用作跟随/取消跟踪系统(例如XenForo)。

所以我的脚本所做的是它在字符串中搜索用户,如果找到该名称,则会删除字符串中用户的名称。但我的问题是脚本由于某种原因无法搜索名称和逗号,因为我尝试从字符串中删除逗号。

感谢任何帮助,提前感谢:)

示例

彼得跟随弗兰兹和乔治,但他想要取消关注乔治

脚本

<?php

$user1 = "Peter";
$following1 = "Franz, George";

$user2 = "Franz";
$following2 = "Peter, George";

$user3 = "George";
$following3 = "Peter, Franz";


//
//
//

if (strpos($following1, $user3) == true) {
    echo "Can remove follow.";

    if (strpos($following1, ", $user3")) {
        $user3 = ", $user3";
        $fNew = str_replace($user3, "", $following1);
        echo "$fNew<br>";
    } else if (strpos($following1, "$user3, ")) {
        $use3 = "$user3, ";
        $fNew = str_replace("$user3", "", $following1);
        echo "$fNew<br>";
    }
} else if ($following1 == $user3) {
    echo "Can remove follow.";
    $fNew = str_replace($user3, "", $following1);
    echo "$fNew<br>";
} else {
    echo "Can't remove follow";
}

?>

2 个答案:

答案 0 :(得分:2)

看看这个:

<?php

$follow = "Peter, Franz, Spongebob";
$guyToUnfollow = 'Franz';

$people = explode(',', $follow);
var_dump($people);
foreach ($people as $key => $person) {
    $person = trim($person);
    if ($person == $guyToUnfollow) {
        unset($people[$key]);
    }
}

$follow = implode(',',$people);

var_dump($follow);

首先,我们将CSV转换为数组,然后循环遍历它。我们使用trim删除空格,并取消设置与要取消关注的人匹配的数组中的任何值。最后,我们使用implode重新创建csv。

在此处查看https://3v4l.org/QEnHj

答案 1 :(得分:0)

strpos返回字符串的位置,因此您需要检查它是否为false而不是检查它是否为true。 所以你应该使用:

<text>#99.0</text>