Php 从字母数字字符串中去掉小数和剩余的零
我在magento的成功页面上返回订单。问题出在我的quantity(QTY)变量上,它返回的值类似于QTY 2.0000 我尝试了一些方法,比如Php 从字母数字字符串中去掉小数和剩余的零,php,trim,Php,Trim,我在magento的成功页面上返回订单。问题出在我的quantity(QTY)变量上,它返回的值类似于QTY 2.0000 我尝试了一些方法,比如$itemQTY\u str+0,我认为这只适用于非字母数字字符串。此外,我还尝试了(floatval)$itemQTY\u str $order=Mage::getModel('sales/order')->getCollection()->addFieldToFilter('increment_id',$this->getOrde
$itemQTY\u str+0
,我认为这只适用于非字母数字字符串。此外,我还尝试了(floatval)$itemQTY\u str
$order=Mage::getModel('sales/order')->getCollection()->addFieldToFilter('increment_id',$this->getOrderId());
$order=$order->getFirstItem();
$order_items=$order->getAllVisibleItems();
$productIds=array();
$itemSKU_str = $itemAMT_str = $itemQTY_str = '';
$i = 1;
foreach($order_items as $order_item) {
$_product=Mage::getModel('catalog/product')->load($order_item->getProductId());
if($_product->getData('fb_pinterest_share')) {
$productIds[]=$order_item->getProductId();
}
if($_SERVER['REMOTE_ADDR'] == '00.00.00.000'){
$itemSKU_str = $itemSKU_str . 'ITEM'. $i . '=' . $order_item->getSku() . '&';
$itemAMT_str = $itemAMT_str . 'AMT'. $i . '=' . $order_item->getPrice() . '&';
$itemQTY_str = $itemQTY_str . 'QTY'. $i . '=' . $order_item->getQtyOrdered() . '&';
}
$i++;
}
/* COMMISSION JUNCTION TRACKING CODE - START */
if($_SERVER['REMOTE_ADDR'] == '00.00.00.000'){
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$con = mysqli_connect('localhost', '******', '*******', '*******');
if (mysqli_connect_errno()){
//echo 'Failed to connect to MySQL: ' . mysqli_connect_error();
}else{
$result = mysqli_query($con, "
SELECT customer_id
FROM sales_flat_order
WHERE status = 'complete'
AND customer_email LIKE '" . $order->getCustomerEmail() . "'
");
if(mysqli_num_rows($result) > 0){
//returning customer
echo '
<iframe height="1" width="1" frameborder="0" scrolling="no" src="https://www.emjcd.com/tags/c?containerTagId=4813&' . $itemSKU_str . $itemAMT_str . (float)$itemQTY_str . 'CID=1527930&OID=' . $this->getOrderId() . '&TYPE=362236&CURRENCY=USD" name="cj_conversion"></iframe>
';
}else{
//new customer
echo '
<iframe height="1" width="1" frameborder="0" scrolling="no" src="https://www.emjcd.com/tags/c?containerTagId=4812&' . $itemSKU_str . $itemAMT_str . $itemQTY_str . 'CID=1527930&OID=' . $this->getOrderId() . '&TYPE=362235&CURRENCY=USD" name="cj_conversion"></iframe>
';
}
}
}
我也尝试过直接编辑字符串
$itemQTY_str = $itemQTY_str . 'QTY'. $i . + 0 '=' . $order_item->getQtyOrdered() . '&';
$itemQTY_str = $itemQTY_str . 'QTY'. $i . '=' . $order_item->getQtyOrdered(). + 0 . '&';
希望这是清楚的。。非常感谢您的帮助
谢谢。将值转换为整数
$itemQTY_str = $itemQTY_str . 'QTY'. $i . '=' . (int)$order_item->getQtyOrdered() . '&';
让我们看看你到底想要什么<代码>数量2或仅
2
?我最终想要的只是数量1=2&;QTY2=3。。。。数量金额后没有其他内容。。没有小数点也没有零。请尝试sprintf(“%d”,值,结果)
@Cheery QTY2,后面没有小数点或零。为了澄清:您查询的给定结果是“QTY 2.000”,您想将其更改为2吗?还是我弄错了?这似乎使QTY完全消失了。是的,如果字符串以“QTY”开头,(int)函数将返回0Ahh,这就是整个字符串。好的,所以在构建$itemQTY_str时需要将数量值转换为int。我已经编辑了代码。
$itemQTY_str = $itemQTY_str . 'QTY'. $i . + 0 '=' . $order_item->getQtyOrdered() . '&';
$itemQTY_str = $itemQTY_str . 'QTY'. $i . '=' . $order_item->getQtyOrdered(). + 0 . '&';
$itemQTY_str = $itemQTY_str . 'QTY'. $i . '=' . (int)$order_item->getQtyOrdered() . '&';