Товарищи, как на php составить регулярку, чтоб гости блога могли публиковать в комментариях html код? Сейчас он просто режется функцией strip_tags(); но хотелось бы, что бы можно было обособлять текст (теги: <b></b> <i></i> <u></u> <s></s>) и вставлять картинки и ссылки (теги: <a href="" title=""> <img src="" alt="">), а всё остальное как раз запретить к использованию. Знаю, что нужна регулярка, но я чёт туплю с ней. PHP: function safehtml($text) { if (preg_match_all("/^<(.+?)[^>](.+?)<(.+?)>$/si", $text, $htmltags)) { print_r($htmltags); //print_r($htmltags[0][4]); } } $test = '<b>hi</b> C:\docs\pseu<b>do</b> i</i>b</i> <img src="" alt="image">'; safehtml($test); Дальше этой выборки не получается уйти, не могу понять, как выбрать все вхождения
Хелпните в php не силен, нужен скрипт который будет искать в поле определенные слова от определенных id , но только новые и если нашел их то делать что-то с учетом того что значения для поиска могут уже быть в таблице
я по моему доступно объяснил повторился правда в конце, что не понятно то напиши попробую по другому объяснить..
1)В какой таблице? 2)Какие слова? 3)Какие id? 4)Что Вы имеет в виду под "новые"? 6) - Вот это вообще набор слов. Предлагаю определится с заданием, конечной целью и подробно описать это. Причем перед отправкой посмотреть на сообщение глазами другого человека, и исправить ошибки, неточности и не правильно сформулированные мысли.
ну если не написанно возми произвольное мне сам код важен дальше сам подствалю нужные id этк вот тебе пример структуры таблицы PHP: INSERT INTO `test` (`id`, `title`,`created`) VALUES (1, 'test','2011-05-19 22:30:07',), (2, 'test2','2011-06-19 22:35:07',), (3, 'test','2011-07-19 22:31:07',); нужно допустим найти слово test не позднее 2011-06-19 22:35:07 и если нашел написать ок например.
PHP: if($res = mysql_query("SELECT 'ok' FROM test WHERE DATE(created) <= '2011-06-19 22:35:07'")) echo $res;
PHP: <?php $file=file('sites.txt'); //Файл foreach($file as $s){ for($i=1;$i<11;$i){$it=$i++; $sites[]=trim($s).'/'.$it; } } print_r($sites); ?>
Привет всем,необходимо сделать дамп БД, всё сделал,но есть косяк- как программно получить имена полей определённой таблицы, если они не идентичны по структуре, и уже программно записывать ,если два поля,то в скобках при Insert into(поле,поле) указывать так, а если три,то поле поле поле. Это надо потому что phpMyadmin казёл обязательно хочет,чтобы в скобках указывали какие поля изменять... я сделал для определённой бд, где знаю поля и записал в формировании запроса ети поля... Вот код Code: $fields=array(); $k=0; // Количество извлеченных колонок таблицы до цикла извлечения их из выполненного выше запроса $i=0; // Индекс массива колонок // Цикл извлечения информации о колонках из выполненного выше запроса while($row3=mysql_fetch_array($query_fields)) { $k++; // Извлечение данных о колонке $fields[$i]=$row3["Field"]; // Имя $type=$row3["Type"]; // Тип $null=$row3["Null"]; // Признак NULL $key=$row3["Key"]; // Ключевое или нет $default=$row3["Default"]; // Значение по-умолчанию $extra=$row3["Extra"]; // Дополнительные параметры (auto_increment) // К запросу на создание таблицы добавляется имя и тип колонки, а также: $str.=" $fields[$i] ".strtoupper($type); NULL будет = YES if($null=="NO") { $str.=" NOT NULL"; } if($key=="PRI") { $str.=" PRIMARY KEY"; } if(!empty($default)) { $str.=" DEFAULT $default"; } if($extra=="auto_increment") { $str.=" AUTO_INCREMENT"; } if($k<mysql_num_rows($query_fields)) { $str.=","; } $i++; } $str.=");"; fwrite($file,"$str\r\n"); $query_data=mysql_query("SELECT * FROM $table"); while($row4=mysql_fetch_array($query_data)) { $str="INSERT INTO $table (id,dat,fac,studcount) VALUES ("; // вот тут и проблемка...
если вдруг у кого-то есть скрипт, который ищет в каталогах и подкаталогах html файлы, найденных файлах ищет определенные слова и меняет на слова заданные в скрипте - поделитесь пожалуйста, буду благодарен
может кому-то пригодится Code: function get_files($dir = "."){ $files = array(); if ($handle = opendir($dir)) { while (false !== ($item = readdir($handle))) { if (is_file("$dir/$item")) { $files[] = "$dir/$item"; //*************** if ($item=="123.html") { $r=fopen("$dir/$item",'r'); // 3 $text = fread($r, filesize("$dir/$item")); $text = str_replace('что меняем', 'на что меняем', $text); fclose($r); $r=fopen("$dir/$item",'w'); // 3 fwrite($r, $text); fclose($r); } //*************** } elseif (is_dir("$dir/$item") && ($item != ".") && ($item != "..")){ $files = array_merge($files, get_files("$dir/$item")); } } closedir($handle); } return $files; }
День добрый. Есть скрипт. При нажатии на кнопку получает время и заносит в базу (time_kill. time_resp задается ручками, time_out должен быть результат сложения двух столбиков, но что-то скрипт упорно сопротивляется. Вид таблицы: PHP: <? if ($_POST) { include 'connectdb.php'; $mvp = trim($_POST['mvp']); $user = trim($_POST['user']); $today = date("Y-m-d H:i:s"); $time_kill = "SELECT `time_kill` FROM `global` WHERE `mvp` = '" . $mvp . "'"; $time_resp = "SELECT `time_resp` FROM `global` WHERE `mvp` = '" . $mvp . "'"; $r = "UPDATE `global` SET `user` = '" . $user. "' WHERE `mvp` = '" . $mvp . "'"; $r1 = "UPDATE `global` SET `time_kill` = '" . $today. "' WHERE `mvp` = '" . $mvp . "'"; $x3=$time_kill+$time_resp; $r2 = "UPDATE `global` SET `time_out` = $x3"; $result = mysql_query($r) or die (mysql_error()); $result = mysql_query($r1) or die (mysql_error()); $result = mysql_query($r2) or die (mysql_error()); } ?> <form method="POST"> <SELECT SINGLE NAME="mvp" SIZE=1> <option value="Golden Thief Bug">Golden Thief Bug</option> <option value="Atroce">Atroce</option> <option value="Eddga">Eddga</option> </SELECT> Введите ваше имя: <input type="text" name="user"> <input type="submit" name="okbutton" value="ЙА УПИФАТЬ МЕВЕПЕ!!!"> </FORM> Может кто подсказать, что не так?
Та вот в том то и шляпа, что вроде пишу так, а оно не делает что должно... PHP: $ch = curl_init(); $ch = curl_init('http://vk.com/id17107382'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "act=add&al=1&from=profile&hash=36c6501521b705c96d&mid=17107382"); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch);
Всё тот же результат. До этого авторизируюсь и получаю сообщение об успешной авторизации... С пабликом та же шляпа: PHP: $ch = curl_init(); $ch = curl_init("http://vk.com/al_public.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "act=a_enter&al=1&hash=00c2709ed3ea2642a2&pid=23164653"); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch);