Snoopy Class 로 긁어오기 질문좀 드립니다.
본문
Snoopy Class 사용해서
<em class="Price day">12,350</em>
위 태그에서 12,350 을 긁어와
곱하기 7를 해서 출력을 하고 싶은데 잘 안되에요.
$rex="/\<em class=\"Price.+\"\>(.*)\<\/em\>/";
위처럼 자르면 12,350으로 긁어와서
str_replace("," , "", $price);
짤라주면
12350 으로 표현은됩니다.
그런데 이게 숫자로 인식을 못하고 문자열로 인식을 해서
곱하기 7이 먹지를 않습니다.
잘라서 숫자로 인식하게끔 하는 방법이 없을까요?
고수님들 부탁드립니다.
답변 4
> 아래와 같이 돌리면
> 분명 12300 이라고 출력이 됩니다. 이탤릭체로...
> 근데 이걸 숫자로 인식을 못하고 있는거 같습니다.
> $rex 에서 문제가 있는걸까요?
>
>
> <?
> include_once 'Snoopy.class.php';
> $snoopy=new snoopy;
> $o="";
> $snoopy->fetch("http://stock.daum.net/item/main.daum?code=041140");
> $txt=$snoopy->results;
> $rex="/\<em class=\"curPrice.+\"\>(.*)\<\/em\>/";
> preg_match_all($rex,$txt,$o);
> $nowprice1=$o[0][0];
>
> $nowprice = explode(",",$nowprice1);
> $string = "$nowprice[0]"."$nowprice[1]";
> $now = $string;
> echo $now;
> ?>
이탤릭체로... <---여기에 벌써 답이 나와있는 것입니다
숫자만 추출해서 출력하는데 이탤릭체로 나올 수가 없는 것이죠
출력된 상태를 소스보기해서 보면 아마 아래처럼 나올 것입니다
<em class="curPrice down">12300</em> <--- 이것은 $o[0][0]
원하는 숫자는 $o[0][1]<---이것을 사용해야합니다
preg_match_all~~~다음에 print_r($o)해 본 후 사용하면 명확하게 작성할 수 있습니다
(int)str_replace("," , "", $price);
(int)를 앞에 붙여보셔요 (int)$price
그럴리가요?
php 변수는 숫자, 문자 구별 하지않는걸요?
$a="1000";
$b= $a * 2;
echo $b;
해보세요