我想从url下载源代码并找出特定文本并将其存储到变量中。
假设我有网址http://www.homedepot.com/p/Ryobi-185-MPH-510-CFM-Gas-Backpack-Blower-RY08420A/203312654
我想下载其源代码并找到下面的源代码底部文本。
还将每个变量(如CI_Pagetype
,CI_ItemID
存储在php变量中,以便将其存储在csv文件中。
<script>
var CI_Pagetype = 'PRODUCT';
var CI_ItemID = '203312654';
var CI_ItemName = '185 MPH 510 CFM Gas Backpack Blower';
var CI_CatID = '556375';
var CI_CatName = '';
var CI_ItemPrice = $('#ciItemPrice').val();
var CI_ItemMfr = 'Ryobi';
var CI_ItemMfrNum = '573539';
var CI_ItemUPC = '046396001122';
var CI_ItemAvailability = $('#ciItemAvailability').val();
var CI_ItemISBN = '';
var CI_ItemShipWeight = '22';
目前我可以使用下载源代码 的file_get_contents();
但我不确定如何编写正则表达式或提取该数据。
请帮我找出解决方案。
答案 0 :(得分:2)
通过此网站:https://regex101.com/
使用此正则表达式:var (CI_)([A-Za-z0-9]*) = '([a-zA-z0-9 ]*)';
将其与g
(全局)参数
对于此示例:
<script>
var CI_Pagetype = 'PRODUCT';
var CI_ItemID = '203312654';
var CI_ItemName = '185 MPH 510 CFM Gas Backpack Blower';
var CI_CatID = '556375';
var CI_CatName = '';
var CI_ItemPrice = $('#ciItemPrice').val();
var CI_ItemMfr = 'Ryobi';
var CI_ItemMfrNum = '573539';
var CI_ItemUPC = '046396001122';
var CI_ItemAvailability = $('#ciItemAvailability').val();
var CI_ItemISBN = '';
var CI_ItemShipWeight = '22';
var bcData = new Object();
结果:
MATCH 1
1. [19-22] `CI_`
2. [22-30] `Pagetype`
3. [34-41] `PRODUCT`
MATCH 2
1. [52-55] `CI_`
2. [55-61] `ItemID`
3. [65-74] `203312654`
MATCH 3
1. [85-88] `CI_`
2. [88-96] `ItemName`
3. [100-135] `185 MPH 510 CFM Gas Backpack Blower`
MATCH 4
1. [146-149] `CI_`
2. [149-154] `CatID`
3. [158-164] `556375`
MATCH 5
1. [175-178] `CI_`
2. [178-185] `CatName`
3. [189-189] ``
MATCH 6
1. [248-251] `CI_`
2. [251-258] `ItemMfr`
3. [262-267] `Ryobi`
MATCH 7
1. [278-281] `CI_`
2. [281-291] `ItemMfrNum`
3. [295-301] `573539`
MATCH 8
1. [312-315] `CI_`
2. [315-322] `ItemUPC`
3. [326-338] `046396001122`
MATCH 9
1. [411-414] `CI_`
2. [414-422] `ItemISBN`
3. [426-426] ``
MATCH 10
1. [437-440] `CI_`
2. [440-454] `ItemShipWeight`
3. [458-460] `22`
价格和可用性是功能所以没有价值。
$re = "/var (CI_)([A-Za-z0-9]*) = '([a-zA-z0-9 ]*)';/";
$str = "<script>\nvar CI_Pagetype = 'PRODUCT';\nvar CI_ItemID = '203312654';\nvar CI_ItemName = '185 MPH 510 CFM Gas Backpack Blower';\nvar CI_CatID = '556375';\nvar CI_CatName = '';\nvar CI_ItemPrice = \$('#ciItemPrice').val();\nvar CI_ItemMfr = 'Ryobi';\nvar CI_ItemMfrNum = '573539';\nvar CI_ItemUPC = '046396001122';\nvar CI_ItemAvailability = \$('#ciItemAvailability').val();\nvar CI_ItemISBN = '';\nvar CI_ItemShipWeight = '22';\n\nvar bcData = new Object();";
preg_match_all($re, $str, $matches);