Php 预替换问题
我试图使用preg_replace删除一段代码,但在使其正常工作时遇到了问题 代码示例:Php 预替换问题,php,preg-replace,Php,Preg Replace,我试图使用preg_replace删除一段代码,但在使其正常工作时遇到了问题 代码示例: $str = '<p class="code">some string here</p>'; 我试图得到: some string here //no space at the beginning. 我一直在拼命寻找解决办法。我之所以尝试将它一块一块地剥离出来,而不是将preg_replace分解成碎片,是因为我不想更改标签之间字符串中的任何内容。有什么想法吗 (它不应该这样做)
$str = '<p class="code">some string here</p>';
我试图得到:
some string here //no space at the beginning.
我一直在拼命寻找解决办法。我之所以尝试将它一块一块地剥离出来,而不是将preg_replace分解成碎片,是因为我不想更改标签之间字符串中的任何内容。有什么想法吗 (它不应该这样做)
它可能是其他地方的空间输出(使用var\u dump()
查看字符串)。(它不应该)
它可能是其他地方的空间输出(使用
var\u dump()
查看字符串)。您可能需要查看此线程,看看是否要切换到使用DOMDocument。它将为您节省大量通过HTML解析的麻烦
您可能需要查看此线程,看看是否要切换到使用DOMDocument。它将为您节省大量通过HTML解析的麻烦 测试:
<?php
$str = '<p class="code">some string here</p>';
$pattern = array();
$pattern[0] = '!<p class="code">!';
$pattern[1] = '!</p>!';
$result = preg_replace($pattern,"", $str);
var_dump($result);
似乎工作正常。测试:
<?php
$str = '<p class="code">some string here</p>';
$pattern = array();
$pattern[0] = '!<p class="code">!';
$pattern[1] = '!</p>!';
$result = preg_replace($pattern,"", $str);
var_dump($result);
好像很好用。亚历克斯,我知道我在哪里找到了多余的空间 我把代码放在一个文本区域中,如下所示:
$str = '<p class="code">some string here</p>';
$pattern = array();
$pattern[0] = '!<p class="code">!';
$pattern[1] = '!</p>!';
$strip_str = preg_replace($pattern,"", $str);
<textarea id="code_area" class="syntaxhl" name="code" cols="66" rows="5">
<?php echo $strip_str; ?>
</textarea>
$str='这里有一些字符串;
$pattern=array();
$pattern[0]='
!”;
$pattern[1]='
!';
$strip_str=preg_replace($pattern,“,$str);
这给了我额外的空间,但当我将代码更改为:
<textarea id="code_area" class="syntaxhl" name="code" cols="66" rows="5"><?php echo $strip_str; ?></textarea>
没有行空格或中断,多余的空格消失了。Alex我知道我在哪里取多余的空格 我把代码放在一个文本区域中,如下所示:
$str = '<p class="code">some string here</p>';
$pattern = array();
$pattern[0] = '!<p class="code">!';
$pattern[1] = '!</p>!';
$strip_str = preg_replace($pattern,"", $str);
<textarea id="code_area" class="syntaxhl" name="code" cols="66" rows="5">
<?php echo $strip_str; ?>
</textarea>
$str='这里有一些字符串;
$pattern=array();
$pattern[0]='
!”;
$pattern[1]='
!';
$strip_str=preg_replace($pattern,“,$str);
这给了我额外的空间,但当我将代码更改为:
<textarea id="code_area" class="syntaxhl" name="code" cols="66" rows="5"><?php echo $strip_str; ?></textarea>
没有行空格或中断,多余的空格消失了。为什么不使用trim()
这将删除字符串周围的空白。为什么不使用trim()
这将删除字符串周围的空白。谢谢您的评论。我希望它能这么简单,但我尝试了trim(),它不仅修剪了字符串开头的空格,还修剪了字符串中的所有其他空格。我只想修剪第一个空格,不需要其他空格。@David
trim()
只去除尾随和留下的空格。Alex你是对的,我在一个没有css的干净页面上尝试了我的代码,等等,但是开始的空格不见了,所以我从其他地方找到了那个空格。谢谢你的帮助。谢谢你的评论。我希望它能这么简单,但我尝试了trim(),它不仅修剪了字符串开头的空格,还修剪了字符串中的所有其他空格。我只想修剪第一个空格,不需要其他空格。@Davidtrim()
只去除尾随和留下的空格。Alex你是对的,我在一个没有css的干净页面上尝试了我的代码,等等,但是开始的空格不见了,所以我从其他地方找到了那个空格。谢谢你的帮助。
$text = trim($text);