Согласен незачем, достаточно лишь PHP: $taglist2 = fopen("tags.php", "a+"); //Заменить на $taglist2 = fopen("tags.php", "w); //и можно удалить $clear_tags=fopen("tags.php", "w"); Просто видишь опять та же проблема, файл записывается с пропусками...
Как правильно заставить работать функцию scandir() .. Заливаю в корень сайта скрипт 1.php На серваке есть папка data котрую надо просканировать на наличие файлов.. PHP: $files=scandir("/data"); foreach ($files as $file) { if(strlen($file)<3) {} else { $filenames[]=$file; } } $names=implode("\r\n",$filenames); echo $names; Но в ответ ошибка.
подскажите как на php в файле находить идентичные (одинаковые) строчки? Банально брать элементы по порядку и прогонять по всему списку?
OnArs, Чисто предположение, не знаю насчет скорости выполнения: PHP: $a=file('file.txt'); if ($a!==array_unique($a)) echo 'есть одинаковые строчки';
ну если файл большой, то он не откроется так (у мну 40 кб не открылось =( ). а так нормуль. тока большой файл лучше тогда построчно считать вручную.
как отфильтровать/экранировать поле data перед отправкой в БД? Code: $start_date = $_POST['start_date']; $end_date = $_POST['end_date']; $sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date') VALUES ('$namber', '$firmname', '$start_date', '$end_date');"; Code: CREATE TABLE `zakazy` ( `id` int(5) NOT NULL auto_increment, `namber` int(5) NOT NULL, `name` varchar(255) NOT NULL, `start_date` date NOT NULL, `end_date` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
PHP: <? function chek($text) { $text = htmlspecialchars($text); $text = addslashes($text); return $text; } $start_date = chek($_POST['start_date']); $end_date = chek($_POST['end_date']); $sql = "INSERT INTO 'zakazy' ('namber', 'name', 'start_date', 'end_date') VALUES ('$namber', '$firmname', '$start_date', '$end_date');"; ?>
Code: if ((!is_numeric($namber) && isset($namber))) { $error = true; $error_msg .= ($error_msg) ? "<br>" : ""; $error_msg .= 'Неверно заполнено поле "Номер договора"'; } а если так Code: if ($_POST['end_date']){ $error = true; $error_msg .= ($error_msg) ? "<br>" : ""; $error_msg .= 'Неверно заполнено поле "Дата окончания"'; } Есть альтернатива is_numeric() для date
PHP: function is_date($date) { if(preg_match("#^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$#",$date)) return true; else return false; } формат даты: 11.01.2008 Если соблюден, то true, иначе false
ChaaK слешей не многовато?) Тем более что по стандарту для мускуля формат должен быть YYYY-MM-DD Так что регулярка будет: PHP: if (preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/',$dat))
Не могу понять не работает функция shuffle() для перемешивания массива. есть файл text.txt с таким содержимым делаю так PHP: $tagsforsite=file('text.txt'); $tagsforsite=shuffle($tagsforsite); echo $tagsforsite[0]; ниак не выводит значения массива, если через foreach делаю выкидывает ошибку
Я думал shuffle возвращает булевое значение(true||false). Поэтому не PHP: $array = shuffle($array); а PHP: shuffle($array); У тебя после перемешивания, в переменную кладется true, поэтому и форич ругается. В следующий раз отлаживай скрипты пошагово.
Народ, новая суровая просьба от меня. Как пропарсить Xml так, чтобы наименования тэгов были столбиками таблички, а данные в каждом повторяющемся тэге были строчкой таблицы? Ну т.е. представить Xml-данные в виде таблички Html, строчки в которой можно, допустим, покрасить, т.е. работать с ней уже, как с обычной Html-табличкой. Надеюсь, адекватно пояснил.
2DiffuSer на примере rss античата: PHP: <?php $s=implode('',file("http://forum.antichat.ru/news.rss")); $s=strstr($s,"<item>"); //Строка, начиная с которой нужно работать preg_match_all("/<([a-zA-Z0-9:\"= ]+)>([^<]*)<\/[a-zA-Z0-9:]+>/",$s,$match); $col=count(array_unique($match[1])); //Количество колонок echo "<table border=1>"; echo "<tr>"; for($q=0;$q<$col;$q++){ //Выводим echo "<td>".$match[1][$q]."</td>"; //имена } //колонок echo "</tr>"; /////////////////////////////////////Далее выводим данные for($w=0;$w<(count($match[1])/$col);$w++){ echo "<tr>"; for($q=0;$q<$col;$q++){ echo "<td>".$match[2][$q+$w*$col]."</td>"; } echo "</tr>"; } echo "</table>"; ?> правда не выводится одна строка: Code: <content:encoded><![CDATA[ но это можно доделать... xD