当前编码的目的:
我有一个.txt
文件,其中包含一个文件名列表(地图名称与我的情况完全相同,每个都在其上自己的行),我们{{1}不断更改和修改地图。我在add/remove
页面上使用脚本来解析该文件的内容并在网页上显示结果。该脚本将每个地图名称输出到包含在.php
标记中的变量,从而生成下载该特定地图的链接。这将一直持续到所有地图都已在列表中创建,每个地图都作为下载该地图的链接。
我遇到的问题:
我不希望将某些href
创建为链接,并且仅作为文本创建。有没有办法过滤maps/entries
的结果并根据值设置不同的样式?所以像map1-map4一样都变成了下载链接但map5没有,然后map6和on继续下载链接。
正在使用的当前脚本/代码:
fgets()
编码修改,感谢下面的帮助。这是我目前的编码,以产生我想要的东西:
<?php
$file = fopen("maplists/dodgeball.ini", "r");
while (!feof($file)) {
$dbmapname[] = fgets($file);
}
fclose($file);
foreach ($dbmapname as $dbmap){
echo "<a href='http://www.mydownloadurl.com/fastdl/maps/" . $dbmap . ".bsp.bz2'>$dbmap</a><br />";
}
?>
我仍然遇到一个小问题,但是关于数组的最后一个条目被强制为链接,无论它是否在foreach ($dbmapname as $dbmap){
if(!in_array($dbmap, $stockmaps)){
echo "<a href='http://www.mydownloadurl.com/fastdl/maps/" . $dbmap . ".bsp.bz2'>$dbmap</a><br />";
}
else echo $dbmap."<br />";
}
数组中。
答案 0 :(得分:0)
有很多方法可以实现这一点。下面我介绍了一种很好的通用方法,您可以在其中创建一个不需要链接的地图数组,然后循环并打印链接或纯文本,具体取决于每个地图是否在列表中。
<?php
$file = fopen("maplists/dodgeball.ini", "r");
while (!feof($file)) {
$dbmapname[] = trim(fgets($file));
}
fclose($file);
$nolink = array( $dbmapname[4] ); //fifth map
foreach ($dbmapname as $dbmap){
if(!in_array($dbmap, $nolink)){
echo "<a href='http://www.mydownloadurl.com/fastdl/maps/" . $dbmap . ".bsp.bz2'>$dbmap</a><br />";
}
else echo $dbmap."<br />";
}
}
?>
您可以根据您想要的任何条件将项目添加到过滤器
//Add item 2 to the list
$nolink[] = $dbmapname[1];
//Add all items after item 20 to the list
$nolink = array_merge($nolink, array_slice($dbmapname, 20));
//Don't link a specific set of maps
$nolink = array('bad_map', 'another_map_not_to_show');