2011-01-10 3 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? Нужно ли использовать взрыв?Как получить регулярное выражение от другого var

Благодаря

+0

ereg амортизируется и не следует использовать. –

+0

@ Dragon: понимаете, что еще я буду использовать? – 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 по цене он вставляет «Массив». Это VARCHAR (15). – Dean

+0

Отсортировано, используется $ price [0] как его массив. – Dean

0

короче, взрываются будет работать, если вы должны удалить его из $ HTML.

+0

правильно, и как именно я об этом? Я не понимаю, как работает Explode. Он берет материал из строки и просто расширяет его, чтобы вы могли удалить определенные вещи? – Dean

+0

берет строку и задает разделитель, превращает ее в массив. в зависимости от того, что вам нужно взять из $ html, вы можете получить его по индексу массива ... – tekknolagi

+0

Ok попробовал это http://codepad.org/GJIq4lYj, похоже, не работает. – Dean

Смежные вопросы