私は初心者なので、これがばかげた質問なら失礼します。
したがって、私が試みていたのは、JQuery/JSを使用してURLのタイトルを取得することです。私はURLのコンテンツをロードしたくないので、その中のタグを解析します。
もっとはっきりさせてください、私は一連のURLを持っています。たとえば、タイトルを表示したい20です。私が参照しているURLは現在のURLではないため、js document.titleを使用できません。
だから私はSOMEFUNC.title(URL)という形式の何かをしてそのタイトルを取得したいと思います。そのような機能はありますか?
このAPIを使用して、任意のWebページのタイトルを取得することもできます
http://textance.herokuapp.com/title/
$.ajax({
url: "http://textance.herokuapp.com/title/www.bbc.co.uk",
complete: function(data) {
alert(data.responseText);
}
});
このようなものはうまくいくはずです:
$.ajax({
url: externalUrl,
async: true,
success: function(data) {
var matches = data.match(/<title>(.*?)<\/title>/);
alert(matches[0]);
}
});
TheSuperTrampは正しいです。externalUrlがドメインの外にある場合、上記は機能しません。代わりに、このphpファイルget_external_content.phpを作成します。
<?php
function file_get_contents_curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url = $_REQUEST["url"];
$html = file_get_contents_curl($url);
preg_match('/<title>(.+)<\/title>/',$html,$matches);
$title = $matches[1];
echo json_encode(array("url" => $url, "title" => $title));
次にJavaScriptで:
function getTitle(externalUrl){
var proxyurl = "http://localhost/get_external_content.php?url=" + externalUrl;
$.ajax({
url: proxyurl,
async: true,
success: function(response) {
alert(response);
},
error: function(e) {
alert("error! " + e);
}
});
}
クロスドメインリクエストはajaxでは機能しませんが、サーバーにスクリプトを記述して、特定のサイトのタイトルを取得することができます。
PHP=を使用している場合は、file_get_contentsおよびpreg_match関数を使用してタイトルを取得できます。この人は、すでにこのコードを提供しています。
http://www.cafewebmaster.com/php-get-page-title-function
次に、jQueryでこれをイベントに追加するか、関数内に配置できます。
//For the purpose of this example let's use google
var url = "http://www.google.com";
$.ajax({
type: "POST",
url: "./getURLTitle.php",
data: "{url: \"" + url + "\"}",
success: function(data) {
//do stuff here with the result
alert(data);
}
});