我正在創建一個腳本,它將在文本文件中找到一個字段並獲取我需要的值。創建一個帶參數並傳遞變量的函數
首先使用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;
?>
我以爲我覆蓋範圍設置的主要值,然後在函數中設置它們的全局範圍。我覺得我很接近,但我只是想念一些東西。 我覺得應該有像return $key,$val;
但這不起作用。我可以返回一個數組,但是最終我會輸入與數組中的信息一樣多的代碼。
我缺少一些功能和函數參數。我想通過參數示例:get_plr_data2($Character_Name);
該參數標識我們從中獲取數據的行。
任何與此有關的幫助將不勝感激。
:: Updated:
感謝我過去通過陣列的答案。
但我的問題是取決於我在get_plr_data2($arg)
值的數量不同的參數。
我想我可以設置我可以得到的最大值,但是這當然不起作用,因爲我最終得到了未定義的偏移量。
$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);
要麼修改或添加更多價值創造我所需要的偏移。或者更好的選擇是,如果有一種方法可以生成返回數組(),那麼它可能會爲數組提供的值的數量並返回所需的所有值。我認爲,也許我只是讓這一切變得更加困難。再次
感謝所有幫助和建議
如果你想學習PHP,請省略使用全局。 – Bram