如何在PHP中替换特定的文本

3

我有一些数据,格式如下。

Orange - $3.00
Banana - $1.25

我希望只打印如下内容:

我想要将这个文本作为以下形式打印出来:

Orange
Banana

我尝试在循环中使用以下代码,但数据可能在其他位置也有0。因此,如果我可以在特定行的末尾仅找到0。
$pos=strpos($options, "0");
$options = substr($options, 0, $pos)."\n";

你有什么想法吗?


你可以考虑使用 PHP 的 explode() 函数,它可以根据指定的分隔符将字符串拆分。在这种情况下,我认为你想要在每行的 "-" 上进行拆分,并只使用返回的第一个元素。或者甚至可以在按“-”拆分之前先按 \n 拆分整个标签。 - Marc
如果您只想打印出水果的名称,为什么不找到字符串中的第一个空格字符,而不是0呢? 如果这不是您想要的,请更详细地解释您想要的是什么。 - andrewsi
你可以尝试使用正则表达式。也许是"/([A-za-z0-9_-]) ./"; 这意味着“捕获[一系列字母、数字、下划线和破折号],然后是一个空格,然后是任何其他字符”。 - Riking
那么,如果我寻找空格作为起始位置,如何找到结束位置呢?我不想在没有指定数字的情况下离开结束位置,因为我在末尾还有其他数据,我不想删除那些数据。 - VKA
3个回答

1
你是想只打印商品名称而不是价格吗?
$n=explode(" - ", "Banana - $1.25");
print $n[0];

1

这是您要找的吗?

<?php
$input = 'Orange - $3.00';
list($fruit, $price) = explode('-', $input);
?>

或者如果您想处理所有输入:

<?php
$input = 'Orange - $3.00
Banana - $1.25';
$fruitlist = array();
$sepLines = explode("\n", $input);
foreach($seplines as $line)
{
    list($fruit, $price) = explode(' - ', $line);
    $fruitlist[] = $fruit;
}
?>

0
$string = explode("-", $originalText);
$word = $string[0];

就是这样 :)


要么使用trim函数,要么选择带有空格的needle,因为现在你的末尾有一个额外的空格... - Daniël Voogsgerd

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