Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dinhografo

Comp pegar só o que estiver entre <title></title>?

Recommended Posts

Tenho um arquivo chamado teste.htm no meu diretório root, seu código fonte é o seguinte:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Teste</title>

<meta name="author" content="Dinho">,

</head>

<body>

</body>

</html>

Eu queria saber como eu faço para pegar apenas o titulo que está entre <title></title> no caso acima "Teste" e jogar pra uma variavél com php.

Já tentei usar get_meta_tags(), porem essa função só pega o que está dentro das tags meta do código htm(l), no caso acima o autor da pagina "Dinho".

Alguem sabe como eu posso resolver isso?

Obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

usando strpos('<title>') você obtém a posição de uma strings

 

a partir do php5 foi adiciona uma função aprimorada stripos()

 

http://php.net/strpos

http://php.net/stripos

 

 

pergunta:

nao poderia fazer assim ?

 

<html>
<title>{htmlTitle}</title>
...

com isso basta substituir onde tiver "{htmlTitle}"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigão eu não consegui fazer nada com sua dica, desculpe minha burrice, rsrsrs.

O caso é um seguinte, eu tenho um script que lista os arquivos de um diretório (segue abaixo o script), no meu caso o diretório Artigo, e eu o preparei para só listar o arquivos html e htm, preparei uma página de teste (código lá em cima), com as tags <title>Teste</title> e <meta name="author" content="Dinho">, você poderá ver no código abaixo se você testá-lo que ele abre o arquivo e procura com get_meta_tags() as tags citadas dentro do arquivo Teste.htm que está na pasta Artigo(Artigo/Teste.htm), porem essa função só pega não pega o <meta name="author" content="Dinho">, sua saida é:

Título:

Autor:Dinho

Ou seja o Autor da pagina a função reconhece e imprime corretamente, porem o titulo não.

Se você puder me mostrar como fazer com esse escript para reconhecer e imprimir o titulo da página, ex:

Título: Teste

Autor:Dinho

Eu agradeceria de mais.

<?php

$diretorio = "Artigo/";

// abre o diretório

$ponteiro = opendir($diretorio);

// monta os vetores com os itens encontrados na pasta

while ($nome_itens = readdir($ponteiro)) {

$itens[] = $nome_itens;

}

// ordena o vetor de itens

sort($itens);

// percorre o vetor para fazer a separacao entre arquivos e pastas

foreach ($itens as $listar) {

// retira "./" e "../" para que retorne apenas pastas e arquivos

if ($listar!="." && $listar!=".."){

 

// checa se o tipo de arquivo encontrado é uma pasta

if (is_dir($listar)) {

// caso VERDADEIRO adiciona o item à variável de pastas

$pastas[]=$listar;

} else{

// caso FALSO adiciona o item à variável de arquivos

$arquivos[]=$listar;

}

}

 

}

 

/* AQUI EU COMENTEI ESTA PARTE PORQUE EU SÓ QUERO QUE LISTE OS ARQUIVO */

// lista as pastas se houverem

/* if ($pastas != "") {

foreach($pastas as $listar){

if ($listar != "") {

//print " <a href='$listar'>$listar</a><br>";

}

}

} */

// lista os arquivos se houverem

if ($arquivos != "") {

foreach($arquivos as $listar){

//AQUI EU DEI UM explode() PARA SÓ LISTAR HTM E HTML

$lista_tuto = explode('.', $listar);

//SE O ARQUIVO FOR HTM/HTML ENTÃO ELE LISTA

if(($lista_tuto[1] == "htm") || ($lista_tuto[1] == "html")){

//AQUI A FUNÇÃO get_meta_tags() PARA PEGAR AS TAGS META EX: <meta name="author" content="Dinho">

$pega_tags = get_meta_tags($diretorio.$listar);

print "Título: <a href='$listar'>".$pega_tags['title']."</a><br>";

print "Autor:".$pega_tags['author']."<br>";

}

}

}

?>

Obrigado mais uma vez a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo. Fis um script ae. E testa ae para ver se lhe ajuda.

 

Eu testei aqui em localhost e está funfando beleza.

 

<?php

$handle = fopen("http://ultimateddl.net/Games.aspx", "r");

$contents = stream_get_contents($handle);

fclose($handle);

 

$titulo = explode("<title>", $contents);

$titulo_go = explode("</title>", $titulo[1]);

echo $titulo_go[0];

?>

Em $handle vocÊ coloca a url do arquivo. Exemplo: http://localhost/test.htm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

há vários soluções..

 

no caso que citei

 

<?php
// strpos obtém a posição de um caracter ou string dentro de uma string
echo strpos( '123ABC', 'A' );
//retornará 3
?>

com essa informação utilize substr() que retornará o trecho de uma string à partir de uma determinada posição até um limite.

<?php

$var   = '<title>iMasters</title>';

$tag   = '<title>';
$ini   = strpos( $var, $tag ) + strlen( $tag );
$limit = strpos( $var, '</title>' ) + $ini;

//echo $ini; exit;

echo substr( $var, $ini, $limit );

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo. Fis um script ae. E testa ae para ver se lhe ajuda.

 

Eu testei aqui em localhost e está funfando beleza.

 

<?php

$handle = fopen("http://ultimateddl.net/Games.aspx", "r");

$contents = stream_get_contents($handle);

fclose($handle);

 

$titulo = explode("<title>", $contents);

$titulo_go = explode("</title>", $titulo[1]);

echo $titulo_go[0];

?>

Em $handle vocÊ coloca a url do arquivo. Exemplo: http://localhost/test.htm.

 

Meu caro williamfoose eu fiz umas pequenissimas alterações nesse script e imcorporei com o que eu já tinha e ficou assim:

<?php

$diretorio = "Artigo/";

// abre o diretório

$ponteiro = opendir($diretorio);

// monta os vetores com os itens encontrados na pasta

while ($nome_itens = readdir($ponteiro)) {

$itens[] = $nome_itens;

}

// ordena o vetor de itens

sort($itens);

// percorre o vetor para fazer a separacao entre arquivos e pastas

foreach ($itens as $listar) {

// retira "./" e "../" para que retorne apenas pastas e arquivos

if ($listar!="." && $listar!=".."){

 

// checa se o tipo de arquivo encontrado é uma pasta

if (is_dir($listar)) {

// caso VERDADEIRO adiciona o item à variável de pastas

$pastas[]=$listar;

} else{

// caso FALSO adiciona o item à variável de arquivos

$arquivos[]=$listar;

}

}

 

}

 

/* AQUI EU COMENTEI ESTA PARTE PORQUE EU SÓ QUERO QUE LISTE OS ARQUIVO */

// lista as pastas se houverem

/* if ($pastas != "") {

foreach($pastas as $listar){

if ($listar != "") {

//print " <a href='$listar'>$listar</a><br>";

}

}

} */

// lista os arquivos se houverem

if ($arquivos != "") {

foreach($arquivos as $listar){

//AQUI EU DEI UM explode() PARA SÓ LISTAR HTM E HTML

$lista_tuto = explode('.', $listar);

//SE O ARQUIVO FOR HTM/HTML ENTÃO ELE LISTA

if(($lista_tuto[1] == "htm") || ($lista_tuto[1] == "html")){

//Parte do williamfoose

$handle = fopen($diretorio.$listar, "r");

$contents = stream_get_contents($handle);

//Abaixo eu comentei porque se não o fclose() fecha a '$handle' e o loop não será feito,

//só será exibido a primeira ocorrencia de um arquivo, para esse scipt, atrapalha porque

//ele faz um loop no diretório, e mostra todos os arquivos HTM(L), e se houver mais do que um arquivo HTM(L)

//ele irá dar erro a partir do segundo já que o diretório encontra-se fechado, eu fechei o diretório no fim do script

//com @fclose($diretorio);, o "@" é para não mostar erro no browser

 

//fclose($handle);

 

$titulo = explode("<title>", $contents);

$titulo_go = explode("</title>", $titulo[1]);

//Abaixo eu comentei porque eu irei exibir o titulo em:

//print "Título: <a href='".$diretorio.$listar."'>".$titulo_go[0]."</a><br>";

 

//echo $titulo_go[0];

//Fim da perte do williamfoose

//AQUI A FUNÇÃO get_meta_tags() PARA PEGAR AS TAGS META EX: <meta name="author" content="Dinho">

$pega_tags = get_meta_tags($diretorio.$listar);

print "Título: <a href='".$diretorio.$listar."'>".$titulo_go[0]."</a><br>";

print "Autor:".$pega_tags['author']."<br>";

//Obs se o arquivo HTM(L) não contiver as meta tags "description" nem "keywords" simplemente imprimirá em branco

print "Descrição:".$pega_tags['description']."<br>";

print "Palavras Chave:".$pega_tags['keywords']."<br>";

 

}

}

}

@fclose($diretorio);

?>

Esse scipt está listando só os arquivos HTM e HTML do diretório Artigo, mas pode ser facilmente usado para listar só os diretórios, ou arquivos de outros formatos, para isso é só ler os comentários do script.

Está tambem identificando e imprimindo perfeitamente tudo o que está entre <title> e </title>, e tambem identificando e imprimindo as tags META NAME

 

Agradeço realmente a atenção de todos e em especial do hinom e do williamfoose que resolveram minhas dúvidas.

Eu usei o script do williamfoose e deu certinho como eu pretendia, quem sabe se o hinom montasse um com a parte dele ficariam dois scripts pra galera escolher, que maravilha seria, pois, eu busquei muito na internet inclusive em outros foruns e vi que esta duvida não é só minha mas de muitas pessoas, porem como eu só postei a minha dúvida aqui já foi resolvida em menos de 24 horas. Agradeço sempre ao iMasrters por ter administradores e membros como hinom e williamfoose, que estão dispostos a ajudar.

 

Obrigado

Este tópico está resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.