【问题标题】:Php: How to cut specific part of a string? [closed]Php:如何剪切字符串的特定部分? [关闭]
【发布时间】:2015-07-24 17:41:24
【问题描述】:

情况:

我需要剪切字符串的特定部分。该部分的长度和内容并不总是相同。

我唯一知道的是它总是以:开始并以:结束

中间的所有内容都必须剪掉(包括head标签)。

问题:

如何仅知道字符串的开头和结尾部分来剪切字符串的特定部分?

编辑:

例如,我必须从这个字符串中删除包含在 head 标签中的部分:

<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello!                         
</div>
</body>
</html>

【问题讨论】:

  • 正则表达式。
  • 老实说,我不知道如何处理它。我知道 str_replace 可以从“hello world”中删除“hello”。但就我而言,我唯一知道的是字符串的那部分将包含在两个头标签中。我不知道如何删除它以及介于两者之间的所有内容。
  • 您是否尝试过使用 strpos 先获取您的位置:然后使用该位置上的子字符串+1 获取下一个:?
  • 但我不知道字符串的长度
  • 你不需要知道,当使用子字符串时,第一个 arg 是你的字符串,第二个是从哪里开始(你可以把位置从 strpos +1 开始)然后你会得到从第一个开始的新字符串:向前。然后再次使用 strpos 来获取你最后的位置索引?总结第二个位置,然后你就开始了:和结束:

标签: php html css string replace


【解决方案1】:

防傻方法怎么样?

<?php

$myString = "<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello!                         
</div>
</body>
</html>";

$begin = strpos($myString, '<head>');
$end   = strpos($myString, '</head>');

$final = substr($myString, 0, $begin) . substr($myString, $end+7);

var_dump($final);
?>

【讨论】:

  • 它确实也删除了 head 标签之间包含的内容?
  • 是的。在 phpfiddle.org 上试试
  • 谢谢!完全按照我的需要工作!
【解决方案2】:

这个怎么样?

$str = "hello:evening:";
echo preg_replace("/\:[^)]+\:/","",$str);

这只会给出“你好”

【讨论】:

  • 嗯,好的。所以基本上在我的情况下,我必须替换第一个:用 和第二个:用 对吗?
  • 是的.. ': :' 中的任何字符串都将被删除..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多