Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подстановка значений в мета теги из названия файлов
 
 автор: Oleg77   (04.01.2015 в 01:38)   письмо автору
 
 

Здравствуйте, форумчане!
Вот такой вопрос: как сделать, чтобы в мета теги подставлялась информация из названия файлов, загружаемых из директории?
Вот код:

<?php 
//вывод  списка файлов 
foreach (glob ('dir/a/*.txt') as $f) {  
    
$n++;  
    
$files .=  '<a href="index.php?id='.$n.'">'.basename($f,'.txt').'</a><br>';   


echo 
$files

//если бы запрос файла, выводим его на странице 
if($id = (int)$_GET['id']) {    
    
$f glob('dir/a/*.txt');    
    include 
$f[$id-1]; 
}   
?>



С уважением,
Олег

  Ответить  
 
 автор: Trianon   (04.01.2015 в 03:01)   письмо автору
 
   для: Oleg77   (04.01.2015 в 01:38)
 

1. Огласите весь список! (с)
вопросов - имеется в виду. Чего резину-то тянуть?

2. Здесь нет никаких метатегов. Да и зачем их вообще?

  Ответить  
 
 автор: Oleg77   (04.01.2015 в 14:24)   письмо автору
 
   для: Trianon   (04.01.2015 в 03:01)
 

Здравствуйте!

Вот код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    <title>сюда подставить текст для каждой страницы свой</title>
    <link rel="stylesheet" href="style.css" type="text/css" charset="windows-1251" />
</head>
<body>
<?php 
//вывод  списка файлов 
foreach (glob ('dir/a/*.txt') as $f) {  
    
$n++;  
    
$files .=  '<a href="index.php?id='.$n.'">'.basename($f,'.txt').'</a><br>';   


echo 
$files

//если бы запрос файла, выводим его на странице 
if($id = (int)$_GET['id']) {    
    
$f glob('dir/a/*.txt');  
    include 
$f[$id-1]; 
}   
?>

</body>
</html>

  Ответить  
 
 автор: Trianon   (04.01.2015 в 21:48)   письмо автору
 
   для: Oleg77   (04.01.2015 в 14:24)
 

Убедительная просьба прочесть все предложения. И вникнуть в суть сказанного.

Код, который Вы привели, выводит страницу со списком файлов.
Она - страница - одна.
Она общая для всех .txt - файлов.
Зачем в ее мета-фрагмент что-то подставлять?

К слову сказать, содержимое тега <title> к метаданным не имеет отношения. Это не мета-тег.

Не говоря уже о том, что в php существует функция header(),
позволяющая обойтись вообще без метавариантов - явными полями заголовка.

  Ответить  
 
 автор: Лена   (05.01.2015 в 15:38)   письмо автору
 
   для: Oleg77   (04.01.2015 в 14:24)
 

Вообще-то логика(php) от представления(html) должна идти отдельно.
А из того, что у вас есть, все криво получается:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>

<?php 
foreach (glob ('dir/a/*.txt') as $f) {  
    
$n++;  
    
$files .=  '<a href="index.php?id='.$n.'">'.basename($f,'.txt').'</a><br>';   


$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if(
$id) {    
    
$f glob('dir/a/*.txt');  
?>
    <title><?php  print $f[$id-1]; //название файла, непонятно, какая информация должна из названия выбираться
    
?></title>
<?php     
}   
?>
    <link rel="stylesheet" href="style.css" type="text/css" charset="windows-1251" />
</head>
<body>
<?php

//вывод  списка файлов 
echo $files

//если бы запрос файла, выводим его на странице 
if($id) {    
    
$f glob('dir/a/*.txt');  
    include 
$f[$id-1];
?>

</body>
</html>

  Ответить  
 
 автор: Trianon   (05.01.2015 в 17:07)   письмо автору
 
   для: Лена   (05.01.2015 в 15:38)
 

include $f[$id-1]; это не вывод plaintext-поток, это запрос на исполнение файла, как части скрипта.
Автор вопроса, не смотря на ( а может и наоборот, учитывая) уровень владения инструментом, такой подлянки, как прямая дыра в безопасности, все ж не заслуживает. IMHO.

  Ответить  
 
 автор: confirm   (05.01.2015 в 17:14)   письмо автору
 
   для: Trianon   (05.01.2015 в 17:07)
 

А это не Лены проблема, это я ему код писал, изначально автор писал о html-файлах, почему и подключение, ибо возможно нужно было и исполнение. Это уже потом оказалось, что ".txt", но он же все "добросовестно" просто повторяет, знаний то нет.

  Ответить  
 
 автор: Trianon   (05.01.2015 в 17:44)   письмо автору
 
   для: confirm   (05.01.2015 в 17:14)
 

да... что-то я проглядел...
Лена, прошу прощения.

  Ответить  
 
 автор: Лена   (07.01.2015 в 16:07)   письмо автору
 
   для: Trianon   (05.01.2015 в 17:44)
 

Я в экспресс-режиме просто переставила куски кода, что он там подключает, сильно не вникала, вопрос же был не об этом.

  Ответить  
 
 автор: Oleg77   (06.01.2015 в 13:52)   письмо автору
 
   для: Лена   (05.01.2015 в 15:38)
 

Здравствуйте!

<title><?php  print $f[$id-1]; //название файла, непонятно, какая информация должна из названия выбираться 
    
?></title> 


Здесь хотел вывести название файла без расширения (здесь оно txt. и без dir/a/).
Не поможете это сделать?

С уважением,
Олег

  Ответить  
 
 автор: Лена   (07.01.2015 в 16:05)   письмо автору
 
   для: Oleg77   (06.01.2015 в 13:52)
 

Вам же уже показывали. как это делается
basename($f[$id-1],'.txt')

  Ответить  
 
 автор: Oleg77   (13.01.2015 в 00:54)   письмо автору
 
   для: Лена   (07.01.2015 в 16:05)
 

Спасибо за помощь.

  Ответить  
 
 автор: Oleg77   (27.01.2015 в 00:21)   письмо автору
 
   для: Лена   (07.01.2015 в 16:05)
 

Добрый день!
А вы не напишите в коде как можно вывести не всё содержимое директории, а по 10 файлов на одной странице?
Вот код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//RU"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>

<?php 
foreach (glob ('dir/a/*.txt') as $f) {  
    
$n++;  
    
$files .=  '<a href="index.php?id='.$n.'">'.basename($f,'.txt').'</a><br>';   


$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if(
$id) {    
    
$f glob('dir/a/*.txt');  
?>
    <title><?php  print $f[$id-1]; //название файла, непонятно, какая информация должна из названия выбираться
    
?></title>
<?php     
}   
?>
    <link rel="stylesheet" href="style.css" type="text/css" charset="windows-1251" />
</head>
<body>
<?php

//вывод  списка файлов 
echo $files

//если бы запрос файла, выводим его на странице 
if($id) {    
    
$f glob('dir/a/*.txt');  
    include 
$f[$id-1];
?>

</body>
</html> 


С уважением,
Олег

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования