我有一个简短的小函数,我写的是通过CSS文件读取并返回属性的值。问题是它读取了我想要的值,并将值进一步返回到文件中的值。
这是功能;
function get_css($f, $tag, $el) {
$css = fopen($f, "r");
$line = fgets($css);
while ( !feof($css) ) {
if(strpos($line, $tag) > 0) {
while ( !feof($css) ) {
$line = fgets($css);
if (strpos($line, $el) > 0) {
return substr(substr($line, strpos($line, ":")+1), 0, -1);
}
}
}
$line = fgets($css);
}
}
以下是我的称呼方式;
$ew = get_css("1688_style.css", "elevations", "width");
这是一个正在阅读的CSS文件示例;
Body {
margin:0;
color:black;
width:100%;
height:100%;
margin-left:auto;
margin-right:auto;
padding:0px;
font-family:arial,sans-serif;
background-color:#FFFFFF;
}
#Content {
position:relative;
display:inline-block;
background-color:#FFFFFF;
margin-top:30px;
margin-left:80px;
width:1520px;
}
#elevations {
position:relative;
display:inline-block;
width:250px;
text-align:center;
}
#views {
display:inline-block;
cursor:pointer;
margin-top:20px;
margin-left:15px;
}
#help {
position:absolute;
width:50px;
text-align:center;
font-size:12px;
top:18px;
right:20px;
}
我期望的是250px,但我得到的是来自#help标签的50px。我已经完成了在这里尝试的想法。
答案 0 :(得分:3)
strpos
将返回0;如果根本不存在,则false
将返回if(strpos($line,$tag) > 0)
。所以......
if(strpos($line,$tag) !== false)
应该是......
strpos
您使用+1
的其他地方也是如此,最后您可以删除{{1}},因为它不需要。