Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 预替换问题_Php_Preg Replace - Fatal编程技术网

Php 预替换问题

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分解成碎片,是因为我不想更改标签之间字符串中的任何内容。有什么想法吗 (它不应该这样做)

我试图使用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(),它不仅修剪了字符串开头的空格,还修剪了字符串中的所有其他空格。我只想修剪第一个空格,不需要其他空格。@David
trim()
只去除尾随和留下的空格。Alex你是对的,我在一个没有css的干净页面上尝试了我的代码,等等,但是开始的空格不见了,所以我从其他地方找到了那个空格。谢谢你的帮助。
$text = trim($text);