[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно условие
DeFFka
Здравствуйте уважаемые!
У меня есть 2 скрипта в одном находяться функции в другом собственно их вызов и у меня возникла трудность с одной из функций((
Функция "RA_output_pic" переменная $flag смотрите код файла function.php

index.php
<?php
/*Copyright by Rakov Alexandr*/
require_once "dynamic_files.inc";

RA_test_dir_and_csv($dynamic_path,$csv_file,$dynamic_default_file);

$file_arr=RA_file_to_array($dynamic_path,$csv_file);

$img = RA_output_pic($file_arr,$dynamic_path,$dynamic_default_file);

/*echo $img["TITLE"]."<br>";
echo $img["FILE_NAME"];*/


$img_tag=RA_gen_tag_img($img["FILE_NAME"],$img["TITLE"]);

echo $img_tag;

?>



function.php
<?php

$dynamic_default_file="default.jpg";
$dynamic_path="files/";
$csv_file="list.csv";
$dynamic_default_title="Дефолтный титл для картинки";

function RA_test_dir_and_csv($dynamic_path_func, $csv_file_func, $dynamic_default_file_func){
if (!is_dir($dynamic_path_func)){
echo "Заданная в настройках папка не существует!";
}
if (!is_file($dynamic_path_func.$csv_file_func)){
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
return $img;
}

function RA_file_to_array($dynamic_path_func,$csv_file_func){
$row = 1;
if (is_file($dynamic_path_func.$csv_file_func)){
$open_file = fopen($dynamic_path_func.$csv_file_func, "r");
while (($data = fgetcsv($open_file, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
$file_arr[]=$data[$c];
}
}
}

return $file_arr;
}

function RA_output_pic ($file_arr_func,$dynamic_path_func,$dynamic_default_file_func){
$cnt=count($file_arr_func);
for($i=1;$i<$cnt;$i++){
$string_to_arr = explode(';',$file_arr_func[$i]);
if (is_dir($dynamic_path_func))
{
if ($dh = opendir($dynamic_path_func))
{
while (($file = readdir($dh)) != false) {
$d_start = explode('.',$string_to_arr[0]);

$d_end = explode('.',$string_to_arr[1]);

$today = explode('.',date("d.m.Y"));

$d_start = mktime(0,0,0,$d_start[1],$d_start[0],$d_start[2]);

$d_end = mktime(0,0,0,$d_end[1],$d_end[0],$d_end[2]);

$today = mktime(0,0,0,$today[1],$today[0],$today[2]);

$result_s=$d_start-$today;
$result_e=$d_end-$today;
echo "$d_start<br>$today<br>$d_end<br><br>$result_s<br>$result_e<br><br><br>";
$summ=-$result_s;
echo "<hr>$summ<hr>";
if($file==$string_to_arr[2] and $result_s<=0){
$flag=1;[b]//вот тут нужна какято проверка которую я ни могу придумать помогите пожалуйста[/b]
if($result_s<=0 and $result_e>=0){

$img['FILE_NAME']=$dynamic_path_func.$file;

$img['TITLE']=$string_to_arr[3];

break;
}
}
else{
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
}
}
}

if($flag==1){
$i=$cnt;
}else{
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
}

return $img;
}

function RA_gen_tag_img($path,$title){
$img_tag="<img src=\"$path\" title=\"$title\" alt=\"$title\" />";
return $img_tag;
}

?>


Вот листинг файла *.csv

DATE_START;DATE_END;FILE_NAME;TITLE
16.02.2011;22.03.2011;logo-love-14-02.png; семнадцатым февраля вас всех
23.02.2011;24.03.2011;logo-science-08-02.png;23 фев
26.02.2011;25.03.2011;logo-love-14-02.png;Любовь
27.02.2011;25.03.2011;logo-science-08-02.png;Наука
01.03.2011;25.03.2011;logo-love-14-02.png;1-е марта
04.03.2011;25.03.2011;logo-science-08-02.png;Проверочная строка




Спустя 31 минута, 29 секунд (1.03.2011 - 15:24) Dezigo написал(а):
И в чём проблема?

Спустя 6 минут, 15 секунд (1.03.2011 - 15:30) DeFFka написал(а):
Не знаю какое условие придумать, если оставить как есть то будет выводиться грубо сказать первая строка файла csv, а по логике должна быть предпоследняя.

Спустя 11 минут, 12 секунд (1.03.2011 - 15:41) DeFFka написал(а):
Ведь при таком условии и первая строка под него подходит и будет выводиться sad.gif

Спустя 4 часа, 2 минуты, 56 секунд (1.03.2011 - 19:44) DeFFka написал(а):
Я так понимаю что спасение утопающих, дело рук самих утопающих biggrin.gif так что придеться самому допетривать, ладно как решу эту проблемку так отпишусь в этой темке.

Спустя 16 часов, 39 минут, 40 секунд (2.03.2011 - 12:24) DeFFka написал(а):
Нашел решение вот выкладываю как и обещал не судите строго.

<?php

$dynamic_default_file="default.jpg";
$dynamic_path="files/";
$csv_file="list.csv";
$dynamic_default_title="Дефолтный титл для картинки";

function RA_test_dir_and_csv($dynamic_path_func, $csv_file_func, $dynamic_default_file_func){
if (!is_dir($dynamic_path_func)){
echo "Заданная в настройках папка не существует!";
}
if (!is_file($dynamic_path_func.$csv_file_func)){
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
return $img;
}

function RA_file_to_array($dynamic_path_func,$csv_file_func){
$row = 1;
if (is_file($dynamic_path_func.$csv_file_func)){
$open_file = fopen($dynamic_path_func.$csv_file_func, "r");
while (($data = fgetcsv($open_file, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
$file_arr[]=$data[$c];
}
}
}

return $file_arr;
}

function RA_output_pic ($file_arr_func,$dynamic_path_func,$dynamic_default_file_func){
$cnt=count($file_arr_func);
for($i=1;$i<$cnt;$i++){
$string_to_arr = explode(';',$file_arr_func[$i]);

$d_start = explode('.',$string_to_arr[0]);

$d_end = explode('.',$string_to_arr[1]);

$today = explode('.',date("d.m.Y"));

$d_start = mktime(0,0,0,$d_start[1],$d_start[0],$d_start[2]);

$d_end = mktime(0,0,0,$d_end[1],$d_end[0],$d_end[2]);

$today = mktime(0,0,0,$today[1],$today[0],$today[2]);

$result_s=$d_start-$today;
$result_e=$d_end-$today;
//echo $result_s."<hr>";
$arr_res_s[]=$result_s;
$arr_res_e[]=$result_e;

}


rsort($arr_res_s);

//echo $arr_res_s['1'];
$count=count($arr_res_s);
for($a=0;$a<=$count;$a++){
if($arr_res_s['0']<=0){
//$flag=1;
$a=$count;
$test_s=$arr_res_s['0'];
}else{
if($arr_res_s[$a]<=0){
//$flag=1;
//echo "$arr_res_s[$a] true";

$test_s=$arr_res_s[$a];
$a=$count;
}
}
}


rsort($arr_res_e);
$count=count($arr_res_e);
for($a=0;$a<=$count;$a++){
if($arr_res_e['0']>=0){
//$flag=1;
$a=$count;
$test_e=$arr_res_e['0'];
}else{
if($arr_res_s[$a]>=0){
//$flag=1;
//echo "$arr_res_s[$a] true";

$test_e=$arr_res_e[$a];
$a=$count;
}
}
}


//echo "<hr>".$test;

for($i=1;$i<$cnt;$i++){
echo $flag;
$string_to_arr = explode(';',$file_arr_func[$i]);
if (is_dir($dynamic_path_func))
{
if ($dh = opendir($dynamic_path_func))
{
while (($file = readdir($dh)) != false) {
$d_start = explode('.',$string_to_arr[0]);

$d_end = explode('.',$string_to_arr[1]);

$today = explode('.',date("d.m.Y"));

$d_start = mktime(0,0,0,$d_start[1],$d_start[0],$d_start[2]);

$d_end = mktime(0,0,0,$d_end[1],$d_end[0],$d_end[2]);

$today = mktime(0,0,0,$today[1],$today[0],$today[2]);

$result_s=$d_start-$today;
$result_e=$d_end-$today;
//echo "<hr>".$string_to_arr[0];

if($file==$string_to_arr[2] and $result_s<=0){

if($result_e==$test_e and $test_e>=0 and $result_s==$test_s and $test<=0){
$flag=1;
$img['FILE_NAME']=$dynamic_path_func.$file;

$img['TITLE']=$string_to_arr[3];

break;
}
}
else{
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
}
}
}

if($flag==1){
$i=$cnt;
}else{
$img['FILE_NAME']=$dynamic_path_func.$dynamic_default_file_func;
$img['TITLE']=$dynamic_default_title;
}
}

return $img;
}

function RA_gen_tag_img($path,$title){
$img_tag="<img src=\"$path\" title=\"$title\" alt=\"$title\" />";
return $img_tag;
}

?>


если есть предложения по исправлению этого скрипта внимательно их выслушаю и скорее всего приму т.к. очень мало опыта у меня.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.