Php 将ID和文件名与preg_Match_all匹配
我正在尝试将条目ID和文件名与preg_match_all匹配,但无法获得第二个Php 将ID和文件名与preg_Match_all匹配,php,preg-match-all,Php,Preg Match All,我正在尝试将条目ID和文件名与preg_match_all匹配,但无法获得第二个 我只想获得8F_mU7gcLkLVGN2Rpb3FyX10JVEZ和文件名.txt; $str='<div class="flip-entry" id="entry-8F_mU7gcLkLVGN2Rpb3FyX10JVEZ" tabindex="0" aria-label="Name: File_Name.txt. Drücken Sie zum Öffnen die Eingabetaste.">
我只想获得8F_mU7gcLkLVGN2Rpb3FyX10JVEZ
和文件名.txt
;
$str='<div class="flip-entry" id="entry-8F_mU7gcLkLVGN2Rpb3FyX10JVEZ" tabindex="0" aria-label="Name: File_Name.txt. Drücken Sie zum Öffnen die Eingabetaste.">';
$preg = '/(entry-(.*)\")(\w+\.\w{2,4})/';
preg_match_all($preg, $str);
$preg='/(条目-(.*)\”(\w+\.\w{2,4})/';
preg_match_all($preg,$str);
我认为这应该可以…这适用于当前场景…但不是一个理想的解决方案。。。。
感谢Shankar Damodaran,我将代码修改为:
function parseHTML($url) {
$page = getPage($url);
$dom = new DOMDocument;
$dom->loadHTML($page);
$i = 0;
foreach($dom->getElementsByTagName('div') as $tag) {
$entryid = $tag->getAttribute('id');
if(stripos($entryid, 'entry') !== false) {
$items[$i]['id'] = explode('-',$entryid)[1];
$filename = $tag->getAttribute('aria-label');
$items[$i]['name'] = cut_str($filename, 'Name: ', '. ');
$i++;
}
}
return $items;
}
到目前为止您尝试了什么?可以描述您的代码,如何匹配它?我尝试使用(*)在这两种情况下都适用于条目ID,但对于文件名不适用。我需要使用相同的preg\u match\u all来获取条目ID,我如何将其包含在该正则表达式中?您已经提到,在哪里可以成功获取ID而不是文件名??
8F_mU7gcLkLVGN2Rpb3FyX10JVEZ
File_Name.txt
function parseHTML($url) {
$page = getPage($url);
$dom = new DOMDocument;
$dom->loadHTML($page);
$i = 0;
foreach($dom->getElementsByTagName('div') as $tag) {
$entryid = $tag->getAttribute('id');
if(stripos($entryid, 'entry') !== false) {
$items[$i]['id'] = explode('-',$entryid)[1];
$filename = $tag->getAttribute('aria-label');
$items[$i]['name'] = cut_str($filename, 'Name: ', '. ');
$i++;
}
}
return $items;
}