2011-01-10 13 views
0
$dbLink = mysql_connect('localhost', 'root', 't'); 
mysql_select_db('pc_spec', $dbLink); 
$html = file_get_contents('http://localhost/pc_spec/scrape.php?q=amd+955'); 
echo $html; 
$html = strip_tags($html); 
$price = ereg("\$.{6}", $html); 
$html = mysql_real_escape_string($html); 
$price = mysql_real_escape_string($price); 
$insert = mysql_query("INSERT INTO parts(part, price) values('$html','$price')") or var_dump(mysql_error()); 

$ price {$ 6}と一致させてこの値($ 111.11など)をデータベースに挿入して$ htmlから削除するにはどうすればよいですか?私は爆発を使用する必要がありますか?要するに他の正規表現から分割する方法

+0

eregは償却されるため、使用しないでください。 –

+0

@ドラゴン:それ以外に私は何を使うだろうか? – Dean

+0

preg_ *関数を使用してください。 – alexn

答えて

1

まず、perl互換関数(pcre_ *)を使用する必要があります。

、これはそれを行う必要があり、あなたの価格を取得するには、次の

preg_match('/\$.{6}/', $html, $price); // Get your price 
$html = str_replace($price, '', $html); // Remove $price from $html 
$insert = mysql_query("INSERT INTO parts(part, price) values('$html','$price')") or var_dump(mysql_error()); // Insert into db 

これは、あなたが欲しいものを行う必要があります。そうでない場合は、質問を明確にしてください。

+0

http://codepad.org/SRJYFLKaは動作しません。 MySQLの価格では、 'Array'が挿入されます。それはVARCHAR(15)です。 – Dean

+0

ソートされ、配列として$ price [0]が使用されました。 – Dean

0

おかげで、あなたは$ htmlのからそれを削除する必要があるのに働くだろう爆発します。

+0

と、正確にはどうすればいいですか?私はExplodeの仕組みを理解していません。それは文字列からものを取り、それを展開するだけで特定のものを取り除くことができますか? – Dean

+0

これは文字列を受け取り、区切り文字を与えて配列に変換します。あなたが$ htmlから取る必要があるものに応じて、あなたは配列のインデックスでそれを得ることができます... – tekknolagi

+0

それを試してみたいです。http://codepad.org/GJIq4lYj doesntは動作するようです。 – Dean

関連する問題