PHP strpos() 和 str_replace()
PHP strpos() and str_replace()
我的小 php 脚本有问题。
我的代码应该像在论坛软件(例如 XenForo)中一样运行 follow-/unfollow-system。
所以我的脚本所做的是它在字符串中搜索用户,如果找到该名称,它会删除字符串中的用户名称。但我的问题是脚本由于某种原因无法搜索名称和逗号,因为我也尝试从字符串中删除逗号。
感谢任何帮助,提前致谢:)
示例:
Peter 正在关注 Franz 和 George,但他想取消关注 George
脚本:
<?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";
}
?>
strpos returns 字符串的位置,所以你需要检查它是否不是假的而不是检查它是否为真。
所以你应该使用:
strpos($following1, $user3) !== false
看看这个:
<?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
我的小 php 脚本有问题。
我的代码应该像在论坛软件(例如 XenForo)中一样运行 follow-/unfollow-system。
所以我的脚本所做的是它在字符串中搜索用户,如果找到该名称,它会删除字符串中的用户名称。但我的问题是脚本由于某种原因无法搜索名称和逗号,因为我也尝试从字符串中删除逗号。
感谢任何帮助,提前致谢:)
示例:
Peter 正在关注 Franz 和 George,但他想取消关注 George
脚本:
<?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";
}
?>
strpos returns 字符串的位置,所以你需要检查它是否不是假的而不是检查它是否为真。 所以你应该使用:
strpos($following1, $user3) !== false
看看这个:
<?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