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

时间:2014-12-08 17:11:19

标签: php ajax

我尝试删除空白但不起作用。我使用trim去除空格。 我在php中实现了在responseText 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);
        }

}

我在idiorm中的查询:

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

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

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)

我做错了什么?感谢

2 个答案:

答案 0 :(得分:0)

你必须正确使用第二个参数的trim函数。如果一切都失败了,试试

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

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

答案 1 :(得分:0)

在我看来,您的$ producto [&#39; id&#39;]是一个固定长度的文本字段,因此具有前导空格。

在将值连接到trim()之前,您应该使用ltrim()$orderHTML删除这些内容,然后当您开始阅读代码时,它会自行记录您的原因不得不做这样的操纵,如此

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

echo $orderHTML;