【问题标题】:Cut string after specified character in php在php中指定字符后剪切字符串
【发布时间】:2016-07-12 21:08:29
【问题描述】:

我尝试在出现指定字符后剪切文本,在这种情况下:

文字示例为:

...text?“ Text,

我尝试了以下方法:

$pos2 = strpos($title, '“');
if ($pos2 == true) {
             $header_title = substr($title, 0, $pos2);
    {

但它也总是会削减。我搞砸了向 $pos2 添加数字,但无法弄清楚。如何在指定字符后剪切?

【问题讨论】:

  • 该示例文本在字符后有 no 文本...
  • “剪切”是什么意思?您只想要那部分还是想要移除它?
  • 编辑了文本。我希望它只给出“但包括”之前的部分。

标签: php wordpress character


【解决方案1】:

strpos() 命令需要 3 个参数

1) 变量

2) 起始列和

3) 字符数

如果你只使用substr($title,$pos2),你会得到从 pos2 列到字符串末尾的文本。

<?php
$title = 'before“after';
$pos2 = strpos($title, '“');
if ($pos2 !== false) {
    $header_title = substr($title,0, $pos2+1);
} else {
    // you might want to set $header_title to something in here
    $header_title = 'ELSE';
}
echo $header_title;

结果

before“

同时测试not equal false,因为如果 strpos 没有找到您要搜索的字符,它会返回 FALSE

经过下面的所有讨论,我在本地 Apache/PHP 上运行它

<?php
$title = 'before“after';
$pos2 = strpos($title, '“');
if ($pos2 !== false) {
    $header_title = substr($title,0,$pos2+1);
} else {
    // you might want to set $header_title to something in here
    $header_title = 'ELSE';
}
?>
<!DOCTYPE html>
<html>
<head>
    <title><?php echo $header_title;?></title>
</head>
<body>

    <div> Ello Wurld</div>

</body>
</html>

产生:

【讨论】:

  • 谢谢!我试过你的方法,但它仍然只给我“之前”而不是“之前”......
  • @letobili 检查您是否使用了正确的字符(可能是" - 如果您仔细观察,它并不是真正的",它有点倾斜)。只要两者相同,您就可以开始了。检查文本中有什么字符,然后在strpos 函数中使用它。
  • 也许那个奇怪的字符只是没有显示你在哪里显示它
  • 或者 Odd Char 是您问题中的错字?
  • 不,奇数字符是正确的,我在文本和代码中检查了它,它们是相同的。如果我不剪切文本,则会显示奇数字符。 substr 似乎工作。但不是其中的“+1”。
【解决方案2】:

我认为这对任何人都有帮助:

$title = 'sometext?"othertext';
$pos2 = strpos($title, '"');

$title = substr($title, 0, $pos2+1);

echo $title;

输出:

一些文字?”


如果你想要" 标记之后的文本:

$title = 'sometext?"othertext';
$pos2 = strpos($title, '"');

$title = substr($title, $pos2+1);

echo $title;

输出:

其他文本

【讨论】:

  • 请注意,它们有不同的用途。提供输出,您将看到您的代码在" 之后得到了什么,@RiggsFolly 得到了之前...
  • 老实说,我对此深表歉意,我知道他想在出现“后剪切文本。无论如何,对不起。
  • 不要惊慌。也许他会。
  • 此外,即使操作人员不想要它,其他人也可能会。我只是认为你应该说清楚并解释你的代码在做什么。
  • 谢谢@FirstOne 和 RiggsFolly,我编辑了答案以使其对任何人都有用。
猜你喜欢
  • 2013-01-14
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2013-06-01
  • 2013-08-26
  • 1970-01-01
相关资源
最近更新 更多