php array 질문

php array 질문

QA

php array 질문

본문

이 경우는 잘 작동합니다.


$okey = array('e5aDfd2bnRs', 'zEMt3qViMjk');
$selected = array_rand($okey);
$key=$okey[$selected];

'e5aDfd2bnRs', 'zEMt3qViMjk' 를 list.txt 에 넣고 아래 코드를 썼을때는 작동하지 않습니다.


$file = file_get_contents('list.txt');
$okey = array($file);
$selected = array_rand($okey);
$key=$okey[$selected];

어떻게 해야할까요??

이 질문에 댓글 쓰기 :

답변 5


$file = file_get_contents('list.txt');
$okey = array($file);
$arr_key = explode(',',$okey[0]);
$selected = array_rand($arr_key);
$key=$arr_key[$selected];
echo $key;

print_r($okey);

var_dump(is_array($okey));

이렇게 찍어 보세요. 값이 어떻게 나오는지...

$okey = array('e5aDfd2bnRs', 'zEMt3qViMjk');
배열은 key, value가 짝을 이루어서 구성되어져 있습니다.
위 변수는 0 => 'e5aDfd2bnRs', 1 => 'zEMt3qViMjk' 이렇게 되어 있다고 보시면 됩니다.
file_get_contents 함수는 해당 파일을 문자열로 읽습니다.
결국 첫 번째 $okey는 두 개의 value를 가진 배열이고 두 번째 $okey는 하나의 아주 긴 문자열을 value로 가진 배열입니다.
그래서 두 번째 $okey는 한 번 더 explode 같은 함수로 잘라 주셔야 합니다.

값을 직접 입력하는거나 같은값을 file get contents로 불러오는거랑 결과가 같아야되는거 아닌가요?
결론은 다르다입니다.
0 => 'e5aDfd2bnRs'
1 => 'zEMt3qViMjk'

0 => 'e5aDfd2bnRs, zEMt3qViMjk'

각 변수를 print_r2 함수로 찍어서 현재 변수의 내용물 확인하며 작업해 보세요.

참고로, $okay 변수 상태입니다.

 

Array
(
    [0] => 'e5aDfd2bnRs', 'zEMt3qViMjk'
)

호스팅을 이용한다면  업체에서

보안상 file_get_contents 을 막을 수도 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 87
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT