复制导师PHP代码却效果不同,请求排查问题
问题:代码与导师一致但页面呈现效果不同
我检查后确认使用的代码和导师完全一致,但页面呈现效果却不一样,自己排查了一段时间没找到原因。
截图对比
导师的界面效果:

导师的代码截图:

我的界面效果(图片排版异常,怀疑是图片尺寸问题导致):

从导师界面复制的代码
<?php error_reporting(E_ALL); function yaz($resim, $sekil, $x, $y, $golge) { $sz = getimagesize($sekil); $res = getimagesize($resim); echo $res[0] . '-' . $res[1] . '<br>'; for ($i = 1; $i <= $res[0]; $i += $sz[0]) { $sol = $x + $i; $y1 = $y - $sz[1]; $y2 = $y + $res[1] + 30; echo "<b style='position:absolute;top:$y1;left:$sol;'><img src='$sekil'></b>"; echo "<b style='position:absolute;top:$y2;left:$sol;'><img src='$sekil'></b>"; } for ($i = 1; $i <= $res[1]; $i += $sz[1]) { $ust = $y + $i; $x1 = $x - $sz[1]; $x2 = $x + $res[1] + 30; echo "<b style='position:absolute;top:$ust;left:$x1'><img src='$sekil'></b>"; echo "<b style='position:absolute;top:$ust;left:$x2'><img src='$sekil'></b>"; } echo "<img src='$resim' style='position:absolute;top:$y;left:$x; border-radius: 60px; border: 6px dashed yellow; box-shadow: 0px 0px 35px 15px $golge;'>"; } yaz("armut_k.jpg", "elma.jpg", 230, 350, "gray"); yaz("elma.jpg", "armut_k.jpg", 630, 250, "blue"); ?>
排查方向与解决建议
- 图片资源尺寸不一致
代码依赖getimagesize()获取图片原始尺寸来计算边框图片的排列位置和循环步长。如果你的armut_k.jpg、elma.jpg和导师的原图尺寸不一样,就会导致排列错位。
- 解决:把你的图片调整成和导师原图相同的尺寸,或者在所有
<img>标签中添加固定的width和height属性,比如:<img src='$sekil' width="50" height="50">(数值换成导师图片的实际尺寸)。
- 定位上下文缺失
绝对定位的元素默认以浏览器窗口为基准,如果导师的页面给父容器设置了position: relative,而你的页面没有,就会导致元素位置偏移。
- 解决:给包裹这些元素的容器(比如
<body>或者外层<div>)添加样式position: relative;。
- 验证图片尺寸数据
代码中已经输出了主图片的尺寸(echo $res[0] . '-' . $res[1]),对比你和导师页面上的输出数值,确认是不是图片本身的尺寸差异导致的问题。
内容的提问来源于stack exchange,提问作者fa1th
相关产品推荐
相关产品推荐

