从 php 中的字符串变量中删除空格字符串


Removing whitespace string from a string variable in php

我尝试删除空格但不起作用。我使用修剪来删除空格。我在 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);
        }
}

我的成语查询:

 function getOrdersProduct1($identificador)
{
    return ORM::for_table('producto')->
    where('id',$identificador)->find_one()->as_array();
}

我意识到一个var_dump($productos);d ie();

array (size=11)
  'id' => string '1' (length=1)
  'nombre_producto' => string 'jeans' (length=6)
  'nombre_latin' => null
  'peso' => string '100.00' (length=6)
  'descatalogado' => string '0' (length=1)
  'dimensiones' => null
  'descripcion' => null
  'cantidad_stock' => string '100' (length=3)
  'precioVenta' => string '1.00' (length=4)
  'gama_id' => string '2' (length=1)
  'proveedor_id' => string '1' (length=1)

我做错了什么?谢谢

您必须

正确使用带有第二个参数的 trim 函数。 如果所有失败,请尝试

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

代码行将删除多余的空格,以及前导空格和尾随空格。 这与修剪和preg_replace相结合。

在我看来

,您的$producto['id']是一个固定长度的文本字段,因此具有前导空格。

在将值连接到$orderHTML之前,您应该使用 trim()ltrim() 来删除这些值,然后稍后当您阅读代码时,它将自行记录为什么您必须进行此操作,如下所示

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