我正在创建一个脚本,该脚本将在文本文件中找到一个字段并获取所需的值。
首先使用file()函数将我的txt逐行加载到数组中。然后,我使用explode()为所选行上的字符串创建一个数组。我为数组分配标签以描述$ Key和$ Value。
$line = file($myFile);
$arg = 3
$c = explode(" ", $line[$arg]);
$key = strtolower($c[0]);
if (strpos($c[2], '~') !== false) {
$val = str_replace('~', '.', $c[2]);
}else{
$val = $c[2];
}
这可以正常工作,但是对于我想从txt文件中删除的所有内容,要一遍又一遍地做很多代码。因此,我想创建一个函数,该函数可以使用返回$ key和$ val值的参数来调用。这就是我失败的地方:
<?php
/**
* @author Jason Moore
* @copyright 2014
*/
global $line;
$key = '';
$val = '';
$myFile = "player.txt";
$line = file($myFile); //file in to an array
$arg = 3;
$Character_Name = 3
function get_plr_data2($arg){
global $key;
global $val;
$c = explode(" ", $line[$arg]);
$key = strtolower($c[0]);
if (strpos($c[2], '~') !== false) {
$val = str_replace('~', '.', $c[2]);
}else{
$val = $c[2];
}
return;
}
get_plr_data2($Character_Name);
echo "This character's ",$key,' is ',$val;
?>
我认为我先在main中设置值,然后在函数中将它们设置为全局值,从而涵盖了范围。我觉得自己已经接近了,但我只是想念一些东西。我觉得应该有类似的东西,return $key,$val;
但这是行不通的。我可以返回一个数组,但是最终我将在数组信息中键入同样多的代码。
我缺少函数和函数参数。我想传递和参数示例:get_plr_data2($Character_Name);
参数标识了我们要从中获取数据的行。
任何帮助,将不胜感激。
::更新::
多亏了答案,我才得以通过数组。
但是我的问题取决于我输入的参数get_plr_data2($arg)
的数量不同。
我认为我可以设置我可以得到的最大num值,但这当然是行不通的,因为我最终得到的是未定义的偏移量。
$a = $cdata[0];$b = $cdata[1];$c = $cdata[2];
$d = $cdata[3];$e = $cdata[4];$f = $cdata[5];
$g = $cdata[6];$h = $cdata[7];$i = $cdata[8];
$j = $cdata[9];$k = $cdata[10];$l = $cdata[11];
return array($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l);
现在,我正在考虑可以使用count函数myCount = count($c);
修改或添加更多值来创建所需的偏移量。或更好的选择是,如果有一种方法可以生成return array(),以便它可以为array给出值的数量并返回所有需要的值。我认为也许我只是在使这变得更加困难。
再次感谢您的所有帮助和建议
function get_plr_data2($arg){
$myFile = "player.txt";
$line = file($myFile); //file in to an array
$c = explode(" ", $line[$arg]);
$key = strtolower($c[0]);
if (strpos($c[2], '~') !== false) {
$val = str_replace('~', '.', $c[2]);
}else{
$val = $c[2];
}
return array($key,$val);
}
使用:
list($key,$val) = get_plr_data2(SOME_ARG);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句