2013-04-22 177 views
0

我一直試圖用php preg_match解析這個網站的源代碼http://www.nzz.ch/aktuell/zuerich/stadt_region/notrufdienst-am-handgelenk-1.18068637幾天沒有成功。閱讀與捲曲和搜索的標題也很好。preg_match不匹配

在用preg_match搜索描述時出錯了。 preg_match('/Description" content="(.*)">/i', $content, $description); $ogdescription = substr($description[0], 22, -1);

該搜索的結果是:

Ein Telefon nützt wenig, wenn es sich im Notfall nicht in greifbarer Nähe befindet. Das haben sich die Gründer der Firma Limmex gedacht und eine Armbanduhr auf den Markt gebracht, die per Knopfdruck zum Mobiltelefon wird." /&gt;<meta name="Publisher" content="Neue Zürcher Zeitung AG, Switzerland"><meta name="email" content="[email protected]"><meta name="copyright" content="Copyright &amp;copy; 2013 Neue Zürcher Zeitung AG, Switzerland, http://www.nzz.ch/agb"><meta http-equiv="content-language" content="de"><meta http-equiv="expires" content="-1"><meta name="Author" content="Impressum Neue Zürcher Zeitung, Switzerland, http://www.nzz.ch/impressum"><meta name="distribution" content="global"><meta name="robots" content="index, follow, noarchive, noodp"><meta name="revisit-after" content="1 hour"><meta http-equiv="pragma" content="no-cache"><meta property="fb:app_id" content="138008459595436"><meta property="og:title" content="Zürcher Jungunternehmen: Notrufdienst am Handgelenk - Übersicht Nachrichten - NZZ.ch"><meta property="og:type" content="article"><meta property="og:url" content="http://www.nzz.ch/aktuell/zuerich/stadt_region/notrufdienst-am-handgelenk-1.18068637"><meta property="og:image" content="http://images.nzz.ch/app.php/eos/v2/image/view/145/-/lead/25b76387/1.18068643.1366564054.jpg"><meta property="og:site_name" content="Neue Zürcher Zeitung"><meta name="viewport" content="width=1390"><meta name="application-name" content="NZZ Online"><meta name="msapplication-tooltip" content="Start NZZ Online in Site Mode"><meta name="msapplication-starturl" content="http://www.nzz.ch"><meta name="msapplication-window" content="width=1024;height=760"><meta name="msapplication-navbutton-color" content="#000000"><meta name="msapplication-task" content="name=Nachrichten; action-uri=http://www.nzz.ch/nachrichten; icon-uri=http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico"><meta name="msapplication-task" content="name=Finanzen; action-uri=http://www.nzz.ch/finanzen; icon-uri=http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico"><meta name="msapplication-task" content="name=Magazin; action-uri=http://www.nzz.ch/magazin; icon-uri=http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico"><meta name="msapplication-task" content="name=Marktplätze; action-uri=http://www.nzz.ch/marktplaetze; icon-uri=http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico"><link href="http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico" rel="icon" type="image/x-icon"><link rel="shortcut icon" href="http://www.nzz.ch/version-2.8.1/bundles/website/img/favicon.ico"><link rel="apple-touch-icon" href="http://www.nzz.ch/version-2.8.1/bundles/website/img/apple-touch-icon-57x57.png"><link rel="apple-touch-icon" sizes="72x72" href="http://www.nzz.ch/version-2.8.1/bundles/website/img/apple-touch-icon-72x72.png"><link rel="apple-touch-icon" sizes="114x114" href="http://www.nzz.ch/version-2.8.1/bundles/website/img/apple-touch-icon-114x114.png"><link rel="publisher" href="https://plus.google.com/118094012157733055567"><link rel="stylesheet" type="text/css" media="screen, projection, handheld, print" href="/bundles/website/css/jquery.fancybox-1.3.4.css"><title>Zürcher Jungunternehmen: Notrufdienst am Handgelenk - Übersicht Nachrichten - NZZ.ch</title><link rel="canonical" href="http://www.nzz.ch/aktuell/zuerich/stadt_region/notrufdienst-am-handgelenk-1.18068637"><link rel="stylesheet" type="text/css" href="/version-2.8.1/css/6927630.css"><link rel="stylesheet" type="text/css" media="print" href="/version-2.8.1/css/5bd0678.css"><meta http-equiv="imagetoolbar" content="false"><link rel="search" href="/search" title="Suche Neue Zürcher Zeitung, Switzerland, http://www.nzz.ch/search"><link rel="author" href="/impressum" title="Impressum Neue Zürcher Zeitung, Switzerland, http://www.nzz.ch/impressum"><link rel="copyright" href="/agb" title="Copyright &amp;copy; 2013 Neue Zürcher Zeitung AG, Switzerland, http://www.nzz.ch/agb"><!--[if lt IE 9]><script type="text/javascript" src="/version-2.8.1/bundles/website/js/html5shiv.js"></script><![endif]--><!-- Maxymiser script start --><!-- Maxymiser script end --> 

我做了什麼錯,這需要所有的源代碼?


下一個問題:

preg_match('/escription" content="(.*?)" \/>/i', $content, $description); 

$ ogdescription = $描述[1];

<meta name="twitter:description" content="Am 17 .4. 2013 besch&auml;ftigte sich das &Ouml;1-Gesundheitsmagazin mit Pers&ouml;nlicher Assistenz und dem Recht auf Selbstbestimmung."> 

爲什麼不匹配它?

+0

它是更好地使用DOM文檔對於這個 – 2013-04-22 08:19:29

回答

0
preg_match('/Description" content="(.*?)" \/>/i', $content, $description); 

讓您的搜索'非貪婪'請注意'?'添加到你的正則表達式

沒有?正則表達式將匹配它找到的最後一個>符號。隨着?比賽結束後第一次停止。

您還需要轉義的正斜槓和空格,因爲內容是xHTML。

有了這個表達式

$description[0] // will contain the full matched tag 
$description[1] // will contain just the text from inside the tag 
+0

感謝。這是解決方案:'/ Description「content =」(。*?)「\ />/i' – Lomali 2013-04-22 09:25:26

+0

很酷,很高興我能提供幫助,如果解決了您的問題,請您將其標記爲已回答,以便人們將其視爲回答,它有助於該網站的未來用戶:) – fullybaked 2013-04-22 09:28:02

+0

下一個問題: preg_match('/ escription「content =」(。*?)「\ />/i',$ content,$ description); $ ogdescription = $ description [1]; 爲什麼不相符呢? – Lomali 2013-04-22 16:58:50

0
preg_match('/Description" content="(.*)"/i', $content, $description); 
$ogdescription = substr($description[0], 22, -1); 

無需匹配>

preg_match('/Description" content="(.*?)" \/>/i', $a, $description); 
print_r($description); // use $description[1] 

Array 
(
    [0] => Description" content="Ein Telefon nützt wenig, wenn es sich im Notfall nicht in greifbarer Nähe befindet. Das haben sich die Gründer der Firma Limmex gedacht und eine Armbanduhr auf den Markt gebracht, die per Knopfdruck zum Mobiltelefon wird." /> 
    [1] => Ein Telefon nützt wenig, wenn es sich im Notfall nicht in greifbarer Nähe befindet. Das haben sich die Gründer der Firma Limmex gedacht und eine Armbanduhr auf den Markt gebracht, die per Knopfdruck zum Mobiltelefon wird. 
) 
+0

謝謝。 *?)「\ />/i' – Lomali 2013-04-22 09:24:52