在php中从字符串变量中删除空白字符串

在php中从字符串变量中删除空白字符串,php,ajax,Php,Ajax,我尝试删除空白,但不起作用。我使用修剪来删除空格。 我用php实现,用于响应文本ajax中的回调 $orderHTML = $producto['id'].'#'.$producto['nombre_producto'].'*'.$producto['precioVenta'].'*'.$producto['descripcion'].'*'.$producto['descatalogado'].'@'.$producto['cantidad_stock']; echo trim($or

我尝试删除空白,但不起作用。我使用修剪来删除空格。 我用php实现,用于响应文本ajax中的回调

$orderHTML = $producto['id'].'#'.$producto['nombre_producto'].'*'.$producto['precioVenta'].'*'.$producto['descripcion'].'*'.$producto['descatalogado'].'@'.$producto['cantidad_stock'];
    echo trim($orderHTML);
在我的ajax中,结果数据是:

data: "        1#jeans*1.00**0@100"
我有一个叫php的名字:

GET "http://localhost:8080/ajax/products_ajax.php?idProducto=1&opcion=2"
我的php是:

<?php
require_once '../../vendor/autoload.php';
require_once '../../config.php';
require_once '/functions/function_orders.php';
$opcion = $_REQUEST['opcion'];

switch($opcion)
{
    case '1':

        if(isset($_POST['parametro1'])&&isset($_POST['parametro2']))
        {
            $orderHTML = getOrdersProduct($_POST['parametro1'],$_POST['parametro2']);
            echo trim($orderHTML);

        }
        break;

    case '2':

        if(isset($_GET['idProducto']))
        {
            $producto = getOrdersProduct1($_GET['idProducto']);
            $orderHTML = trim($producto['id']).'#'.$producto['nombre_producto'].'*'.$producto['precioVenta'].'*'.$producto['descripcion'].'*'.$producto['descatalogado'].'@'.$producto['cantidad_stock'];
            echo trim($orderHTML);
        }

}
我实现了一个var_转储($productos);模具()


我做错了什么?谢谢

您必须正确使用第二个参数的微调功能。如果一切都失败了,那就试试看

$str = trim(preg_replace('/\s+/',' ', $str));

代码行将删除额外的空格以及前导空格和尾随空格。这与饰件和预更换相结合

在我看来,$producto['id']是一个固定长度的文本字段,因此有前导空格

您应该使用
trim()
ltrim()
在将值连接到
$orderHTML
中之前删除这些值,然后稍后当您阅读代码时,它会自动记录您为什么必须执行此操作,就像这样

$orderHTML = ltrim($producto['id']) . '#' .
                   $producto['nombre_producto'].'*'.
                   $producto['precioVenta'].'*'.
                   $producto['descripcion'].'*'.
                   $producto['descatalogado'].'@'.
                   $producto['cantidad_stock'];

echo $orderHTML;

您在哪里/如何使用trim?没有这些,我们真的帮不了你。我猜您已经修剪了id,但没有使用修剪过的副本。您确定在
$producto['id']
之前没有任何内容吗?显示其余部分。检查ltrim()函数以删除字符串开头的空格如果
echo trim
代码没有问题,问题就出在其他地方。检查您包含的所有文件是否有
标记。自从我给出此答案后,您已经更改了问题
$str = trim(preg_replace('/\s+/',' ', $str));
$orderHTML = ltrim($producto['id']) . '#' .
                   $producto['nombre_producto'].'*'.
                   $producto['precioVenta'].'*'.
                   $producto['descripcion'].'*'.
                   $producto['descatalogado'].'@'.
                   $producto['cantidad_stock'];

echo $orderHTML;