переводишь установленное время в unix формат получаешь сегодняшнее. Отнимаешь от установленного сегодняшнее, переводишь в удобочитаемый вид с помощью date(), заносишь значения в переменные и потом по условиям определяешь, час(ы)(ов) минут(ы)(ут) и т.п.
так не получится, было бы слишком легко =) Вот рабочий код: Code: <?php $date=strtotime("31.12.2007 0:00"); // твоя дата if ($date>time()) { $date = $date-time(); echo "Осталось "; if (floor($date/(60*60*24*30*12)) > 0) { echo floor($date/(60*60*24*30*12))." лет "; $date = $date - (floor($date/(60*60*24*30*12))*60*60*24*30*12); } if (floor($date/(60*60*24*30)) > 0) { echo floor($date/(60*60*24*30))." месяцев "; $date = $date - (floor($date/(60*60*24*30))*60*60*24*30); } if (floor($date/(60*60*24)) > 0) { echo floor($date/(60*60*24))." дней "; $date = $date - (floor($date/(60*60*24))*60*60*24); } if (floor($date/(60*60)) > 0) { echo floor($date/(60*60))." часов "; $date = $date - (floor($date/(60*60))*60*60); } if (floor($date/(60)) > 0) { echo floor($date/60)." минут "; $date = $date - (floor($date/(60))*60); } echo floor($date)." секунд"; } else echo "какое-то значение"; ?>
Есть файл вида xxxttt;zzzyyy rrreee;aaasss ... Нужно предобразовать этот файл в вид zzzyyy;xxxttt aaasss;rrreee ... То есть просто обменять строки перед и после знака ';' местами. Спасибо. +++
Вот навскидку... Вроде должно работать... Code: <?php $ggg=file('1.txt'); $new=''; foreach($ggg as $key){ $key1=substr($key,0,strlen($key)-2); $key1=explode(';',$key1); $new.=$key1[1].';'.$key1[0]."\r\n"; } echo($new); ?>
FILE_TO_PARSE - файл, который нужно пропарсить; FILE_TO_SAVE - файл, куда будет скинут результат; FILE_DELIMETER - разделитель, по которому нужно парсить; PHP: <?php define("FILE_TO_PARSE", "1.txt"); define("FILE_TO_SAVE", "2.txt"); define("FILE_DELIMETER", ";"); $file_in = fopen(FILE_TO_PARSE, "r") or die("Could not open source file!"); $file_out = fopen(FILE_TO_SAVE, "w+") or die("Colud not open destination file!"); while (!feof($file_in)) { $line = trim(fgets($file_in)); if (strlen($line > 0) && strpos($line, FILE_DELIMETER)) { list($part1, $part2) = split(FILE_DELIMETER, $line); $new_line = sprintf("%s%s%s\n", $part2, FILE_DELIMETER, $part1); fputs($file_out, $new_line); } } fclose($file_out); fclose($file_in); print("Conversion complete!"); ?> или PHP: <?php define("FILE_TO_PARSE", "1.txt"); define("FILE_TO_SAVE", "2.txt"); define("FILE_DELIMETER", ";"); $file_in = file(FILE_TO_PARSE) or die("Could not open source file!"); $file_out = fopen(FILE_TO_SAVE, "w+") or die("Colud not open destination file!"); foreach ($file_in as $item) { $line = trim($item); if (strlen($line > 0) && strpos($line, FILE_DELIMETER)) { list($part1, $part2) = split(FILE_DELIMETER, $line); $new_line = sprintf("%s%s%s\n", $part2, FILE_DELIMETER, $part1); fputs($file_out, $new_line); } } fclose($file_out); print("Conversion complete!"); ?>
PHP: <?php echo "IP: ".getenv("REMOTE_ADDR"); ?> выведет IP: твой_ip Так же вместо getenv("REMOTE_ADDR") можно юзать: $REMOTE_ADDR или $_SERVER['REMOTE_ADDR']
Спасибо, помогло. Теперь детский вопрос: как лучше сравнить содержимое файла и полученного содержимого, точнее какой лучше функцией пользоваться strstr(), substr(); stristr(); или может лучше через регулярные preg_match() ? Короче говоря нужно чтобы проверялось на точное соответствие всего текста О_о И ещё вопрос не относящийся к теме....есть ли функция или небольшой скриптик мгновенной перекодировки текста, например из utf-8 или юникода в cp1251 к примеру. Если чушь сморозил, больно не бейте
У меня есть программка для телефона(только начал её творить, выбор пал на j2me). По идее она должна получать данные в UTF-8(так как понимает оно только UTF-8). Но вот проблема... Отдаёт сайт данные в UTF, а получает программа кракозябры... Причём такие же крякозябры браузер выдаёт, если мой сайт пытаться читать с кодировкой ISO-8859-1. Ссылка на программу: http://sport.inlanger.org.ua/104038_sportmobile.zip Ссылка на скрипт: http://sport.inlanger.org.ua/news_p.php?type=world&num=1&text=1 - выдаёт заголовок новости http://sport.inlanger.org.ua/news_p.php?type=world&num=1&text=0 - выдаёт основной текст новости Какие будут советы?
почему не работает? PHP: <?php header("Location: http://localhost/1.php"); ?> не получается осуществить \r\n я пытался тут везде сувать неполучается=( PHP: <?php include "sql_config.php"; $posts = mysql_query("select * from news"); $total_posts = mysql_num_rows($posts); if(!intval($_GET['p']) || $_GET['p'] > ceil($total_posts/10)) $_GET['p'] = 1; $limit = intval($_GET['p'])*10-10; $query = mysql_query("select * from news ORDER BY date DESC limit $limit,10"); while ($row=mysql_fetch_array($query)) { echo "<br><center>".$row['name']."</center><br>".$row['content']."<br>от: ".$row['date2']."\r\n"; } mysql_close($db_name); ?> и еще я создал в таблице калонку status, и по идее если статус 0 то ничего, а если 1 то доступна админка, и хочу чтобы это проверялось при входе, но неполучается PHP: if($_POST['game']) { $login = mysql_escape_string($_POST['login']); $pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль $query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'"; $result = mysql_query($query) or die ("Ошибка ");;//обработка запроса if (mysql_num_rows($result)==0) { echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>"; } } если пишу $query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'&&'".$status."'"; то не знаю как проверить его и не знаю как к нему обратиться, я прошу помогите проблемы: переадресация, новости не переносятся а уходят за экран, не могу вот сделать проверку на статус=( помогите и не говорите что я тупой я это знаю=)
так должно работать. Видимо у тебя уже выводятся какие-либо данные перед тем, как ты пытаешься отправить свой хэдер что значит "осуществить \r\n"? Ты имеешь в виду переход на новую строку? Если да, то тебе поможет тэг <br>, который ты уже используешь. Видимо, какое-то другое значение имеет в твоем понимании \r\n =) попробуй так PHP: <?php if($_POST['game']) { $login = mysql_escape_string($_POST['login']); $pass = mysql_escape_string(md5($_POST['pass']));//хешируем введенный пароль $query = "SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'"; $result = mysql_query($query) or die ("Ошибка ");;//обработка запроса if (mysql_num_rows($result)==0) { echo "<center>Логин <b>".$login."</b> не найден в базе, или вы ввели неправельный пароль.</center>"; } else { if (mysql_result($result,0,'status')==1) define("ADMIN","1"); // админка } } ?>
понимание в том что я вывожу текст из таблицы, мне нужно чтобы он сам переходил на новую строку в конце экрана, а не уходил за его пределы, а <br> тут неуместен, у меян он для отделения заголовка стоит=(
а тут я незнаю как обратиться к status, то как ты сделал смысла не несет, ты не выбираеш статус из таблицы и я не выбирал, т.к. не пойму куда его сувать, если после where login='".$login."'&& pass='".$pass."' то ниче не получается.
Никуда "сувать" его не надо, сделано все правильно, для этого и нужна фунция mysql_result(), в данном случае она берет первое значение в поле status из запроса SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."'" и если полученное значение равно единице, то устанавливает константу ADMIN в 1 попробуй сделай такой запрос: $query = "SELECT * FROM users_reg where login='$login' and pass='$pass'"; хотя суть не изменится
так мне же надо запросить сначало это поле, а SELECT * FROM users_reg where login='".$login."'&& pass='".$pass."' тут оно не запрашивается
О Боги, боги мои, яду мне, яду... SELECT * - означает что запрашиваются все поля, в том числе и status или ты хочешь получить данные из БД без запроса к БД? ты опиши, что ты конкретно хочешь? я например не телепат