php 외부명령어관련문의

jiin94의 이미지

안녕하세요..
php 프로그램진행도중 안풀리는 부분이 있어 고수님들께 조언좀 구하고자 합니다.

php4버전대에서 sha256을 이용하려고 하니 hash함수는 5.1부터 지원이되더군요.

외부명령어를 이용하여
아래처럼 가져왔습니다.

system("echo -n '".$linkBuf."' | sha256sum");

근데 궁금한것은 출력되는 값을 보니 맨끝네 "-" 하이픈이 붙더군요.
혹시 해당하이픈을 없애는 방법이 없을까요?
그리고 출력된 결과값을 변수에 담는방법은 없는지 ... ㅡㅡ

고수님들의 조언부탁드리겠습니다.

백연구원의 이미지

system("echo -n 'test' | sha256sum | awk '{print $1}'", $oops);
echo "oops"

9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08


소곤소곤

jiin94의 이미지

oops님 감사합니다.

한가지만 더 여쭤봐도 될런지요...
맨끝의 $oops는 뭘뜻하는건지, 그리고 변수에 담는 방법이 있는지 하수에게 조언부탁드립니다. ㅡㅡ

백연구원의 이미지

아.. echo를 잘못찍었네요. echo $oops;

변수($oops)에 담는것까지 포함된 내용입니다.


소곤소곤

jiin94의 이미지

oops님 감사합니다. 많은도움이되네요

근데 제가 잘못하고있는것인지... oops님 표현대로 하니 맨끝에 이상한값이 찍힙니다. ㅡㅡ

system("echo -n 'test' | sha256sum | awk '{print $1}'", $oops);
echo $oops;

맨끝에 0이 찍히네요..에효 왜이리 힘든건지....
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 0

백연구원의 이미지

쉘프롬프트 상에서

echo -n 'test' | sha256sum | awk '{print $1}'

입력해도 뒤에 0이 붙나요?

php버전 문제일수도 있는데 그렇다면 아래 코드를 추가해보세요

$ret = split(" ",$oops);
echo $ret[0];


소곤소곤

jiin94의 이미지

감사합니다.

echo -n 'test' | sha256sum | awk '{print $1}' 로만 했을때에는 0이 붙지 않네요. --

jiin94의 이미지

oops님 감사합니다.^^

덕분에 많은도움되었습니다.
결과를 변수로 넘겨줘야 하는 부분이 있어서 아래처럼 수정처리 했습니다.
감사합니다.^^
$test= trim(shell_exec("echo -n 'test' | sha256sum | awk '{print $1}'"));