Ben bir web sayfasından div içeriği getirmesi ve benim sayfa kullanmak istiyorum.
I have the url http://www.freebase.com/search?limit=30&start=0&query=cancer
I want to fetch div content with id artilce-1001. How can I do that in php or jQuery?
Ben bir web sayfasından div içeriği getirmesi ve benim sayfa kullanmak istiyorum.
I have the url http://www.freebase.com/search?limit=30&start=0&query=cancer
I want to fetch div content with id artilce-1001. How can I do that in php or jQuery?
PHP kullanmak istiyorsanız, Simple HTML DOM bakmak isteyebilirsiniz. Bu güzel tek bir dosya include. docs olarak Slashdot kazıma bir örnek vereyim:
$html = file_get_html('http://slashdot.org/');
// Find all article blocks
foreach($html->find('div.article') as $article) {
$item['title'] = $article->find('div.title', 0)->plaintext;
$item['intro'] = $article->find('div.intro', 0)->plaintext;
$item['details'] = $article->find('div.details', 0)->plaintext;
$articles[] = $item;
}
Regex herhangi bir iyi değildir (ve için asla kullanılmamalıdır) ayrıştırma HTML. Bu normal değil, ve jQuery veya yukarıdaki kütüphanede basit olurdu ne için büyük düzenli ifadeler ile sona
EDIT:
So you would want to use something like
$html = file_get_html('http://www.freebase.com/search?limit=30&start=0&query=cancer');
$text = $html->find('div[id=artilce-1001]',0)->plaintext;
Bu gerçekten bir Freebase konu hakkında değil, genel olarak bir web sitesinden HTML alma API kullanarak ve aşina alma hakkında ise MQL daha iyi bir çözüm olmalı O kolayca belirli türleri aramanızı kısıtlamak için izin verecek beri.
Örnek:
[{
"/common/topic/article": {
"guid": null,
"limit": 1,
"optional": true
},
"/common/topic/image": {
"id": null,
"limit": 1,
"optional": true
},
"id": null,
"name": null,
"name~=": "*Cancer*",
"type": "/user/radiusrs/default_domain/astrological_sign"
}]
mqlread directly geçirilen ve Burcunuz "Kanser" için olası eşleşmeleri ile bir JSON liste döndürür edilebilir. Eğer gerekiyorsa ardından, sadece, trans_raw ve / veya trans_blurb kullanarak yazı ve görüntü elde edebilirsiniz. :)
Aşağıdaki kullanın
$("#LoadIntoThisDiv").load("http://www.freebase.com/search?limit=30&start=0&query=cancer #artilce-1001");
JQuery sitede böyle bir örnek vardır here
PHP sunucu-tarafı, jQuery yüzden gerçekten elde etmek istediğiniz şeye bağlıdır istemci tarafı. Ayrıca bu çünkü (kendi sunucusu üzerinden ama vekil olabilir) same-origin policy, genellikle zaten javascript ile başka bir etki bir Ajax isteği gerçekleştiremiyor dikkat
jQuery bir kenara, burada verdiğiniz durum için çalışacak PHP bunu yapmak için basit bir şekilde, bu
$url="http://www.freebase.com/search?limit=30&start=0&query=cancer";
$html=file_get_contents($url);
if (preg_match('{<div id="article-1001".*?>(.*?)</div>}s', $html, $matches))
{
$content=$matches[1];
}
Yapar 's' değiştirici, unutmayın. satırsonu maç, ve. *? yapar deyim, sadece bir sonraki </div>
yiyor, böylece olmayan açgözlü iç kısmı uyan
Bu durum için çalışır, ancak regexes genellikle bu görev için hasta uygundur. Bir DOmDocument içine HTML yüklemek ve bu şekilde erişebilir.
$doc = new DOMDocument();
$doc->loadHTML($html);
$div=$doc->getElementById("article-1001");