2017-07-18 35 views
0

我需要檢索數據,視頻ID(h7rhqXbdIts)的preg_match檢索串

<?php 
$pattern = '\'/data-videoid="([^"]+)/\''; 
$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>'; 
$result = preg_match($pattern, $subject , $matches); 
echo $result; 
print_r($matches); 
?> 

回答

1

你在你的模式的開始/結束添加了一些'單引號,它試圖爲引號(不存在)進行文字匹配。簡單地刪除它們應該能夠解決您的問題:

<?php 
$pattern = '/data-videoid="([^"]+)/'; 
$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>'; 
$result = preg_match($pattern, $subject , $matches); 
echo $result; 
print_r($matches); 
?> 

this output在這裏你可以看到$matches[1]包含你正在尋找(h7rhqXbdIts)的視頻ID。

0

此代碼應工作

$subject = '<amp-youtube width="640" height="360" data-videoid="h7rhqXbdIts" layout="responsive"></amp-youtube>'; 
$result = preg_match('@data-videoid="(.*?)"@s', $subject , $matches); 
echo $result; 
print_r($matches); //Array ([0] => data-videoid="h7rhqXbdIts" [1] => h7rhqXbdIts) 
+0

我的代碼有什麼問題? – vietnguyen09

+0

你推送的第一個代碼示例,有一個空白模式,並沒有工作。您的代碼片段現在不顯示爲什麼他的代碼無法正常工作。沒有解釋的代碼塊幾乎無助於未來的讀者理解爲什麼代碼無法正常工作。 – FrankerZ

+0

我接受'沒有解釋'部分,但即使'$ pattern ='''仍然有效,因爲我直接在'preg_match'內寫入。 – vietnguyen09