0
嗨我有一个问题,我正在运行一个命令,使用将值“a”传递给名为“category”的文件的终端。不能正确传递给array_search的参数
然后我运行我的php文件,然后希望将“category”的内容设置为一个名为$datatype
的变量。这是成功的,因为当我回显变量时,我会打印出“a”。但是,我想然后在数组中查找此值并返回相应的值“1”。它不工作,除非我直接调用$dataype = "2";
直接设置$datatype
任何想法我做错了什么?
<?
//PUT VALUE "a" INTO A FILE CALLED category
echo shell_exec("cat ".$filename." | cut -f2 | head -1 > category");
$datatype = file_get_contents("category");
echo file_get_contents("category"); // PRINTS "a"
echo $datatype; //PRINTS "a"
$array = array(
"1"=>"a",
"2"=>"b",
"3"=>"c",
"4"=>"d",
);
$key = array_search($datatype, $array);
echo $key; // DOESN'T PRINT ANYTHING!!!! I EXPECT "1" TO BE PRINTED
//IF I CHANGE TO BELOW IT WORKS...."1" IS PRINTED
$datatype = "a";
?>
使用什么Xorifelse建议:
file_get_contents("category", NULL, NULL, 0, 1);
或者有什么建议yardpenalty:
array_search($datatype[0], $array)
这些都工作。然而,我的实际问题涉及不同长度的单词,而不仅仅是单个字符。这告诉我这个词后面的空格肯定是个问题吗?我希望这是有道理的?
尝试'回声“‘$的数据类型’”;'和寻找隐藏的字符,比如'新line'等因'“a”!=“a \ n”' – Xorifelse
你试过file_get_contents(“category”,NULL,NULL,0,1);所以它只返回第一个字符作为字符串? – yardpenalty
或者通过'array_search($ datatype [0],$ array)匹配字符串'$ datatype'中的第一个字符'' – Xorifelse