php字符串到int无法正常工作

时间:2011-12-15 21:48:51

标签: php int

我正在尝试从数据库中剪切小块的图像。我的代码在这里:

$image = imagecreatefromjpeg($filename);
$width = $row['width'];
$height = $row['height'];
$new_width = 480;
$new_height = 360;          
$offset_x =  (int)(round($height*360/$width));//100
$offset_y = 0;
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_image, $image, 0, 0, $offset_x, $offset_y, $width, $height);
imagejpeg($new_image,$newimg);

但在$offset_x行中,(int)(round($height*360/$width))无效。如果我添加intval,例如100,则所有images都会很好,但偏移位置不愿意。那么如何true string to int

顺便说一句:在这种情况下,我会在foreach中调用并剪切数据库中的图像,如果我在此代码之后unset有什么内容吗?

1 个答案:

答案 0 :(得分:3)

你很少需要在PHP中将字符串转换为数字,它确实非常好。例如,您的代码可以正常工作而无需任何额外的转换:

<?php
    $height = '100';
    $width = '200';
    $offset = round($height * 360 / $width);
    echo $offset;
?>

http://codepad.viper-7.com/LJEXIF

您可能遇到的问题,如果它没有给您正确的结果,则是操作的优先级。你的代码,

round($height * 360 / $width)

相当于

round($height * (360 / $width))

首先将360除以$width,然后将结果乘以$height。如果这就是你想要的,那么你的问题就在于其他地方。您应该尝试使用http://codepad.viper-7.com上的测试变量重现您的问题并将其发布回此处。