[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Axel G

    Axel G New Member

    Joined:
    28 Jan 2009
    Messages:
    86
    Likes Received:
    3
    Reputations:
    3
    Товарищи, как на php составить регулярку, чтоб гости блога могли публиковать в комментариях html код? Сейчас он просто режется функцией strip_tags(); но хотелось бы, что бы можно было обособлять текст (теги: <b></b> <i></i> <u></u> <s></s>) и вставлять картинки и ссылки (теги: <a href="" title=""> <img src="" alt="">), а всё остальное как раз запретить к использованию. Знаю, что нужна регулярка, но я чёт туплю с ней. :confused:
    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);
    Дальше этой выборки не получается уйти, не могу понять, как выбрать все вхождения :(
     
  2. Mescalin

    Mescalin Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    37
    Likes Received:
    27
    Reputations:
    -8
    Хелпните в php не силен, нужен скрипт который будет искать в поле определенные слова от определенных id , но только новые и если нашел их то делать что-то с учетом того что значения для поиска могут уже быть в таблице
     
    #20322 Mescalin, 27 Mar 2012
    Last edited: 27 Mar 2012
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Сформулируйте ответ на поставленный ответ!
     
  4. Mescalin

    Mescalin Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    37
    Likes Received:
    27
    Reputations:
    -8
    я по моему доступно объяснил повторился правда в конце, что не понятно то напиши попробую по другому объяснить..
     
  5. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    1)В какой таблице?
    2)Какие слова?
    3)Какие id?
    4)Что Вы имеет в виду под "новые"?
    6)
    - Вот это вообще набор слов.
    Предлагаю определится с заданием, конечной целью и подробно описать это. Причем перед отправкой посмотреть на сообщение глазами другого человека, и исправить ошибки, неточности и не правильно сформулированные мысли.
     
  6. Mescalin

    Mescalin Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    37
    Likes Received:
    27
    Reputations:
    -8
    ну если не написанно возми произвольное мне сам код важен дальше сам подствалю нужные 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 и если нашел написать ок например.
     
  7. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    if($res mysql_query("SELECT 'ok' FROM test
    WHERE DATE(created) <= '2011-06-19 22:35:07'"
    ))
    echo 
    $res;
     
  8. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Если нет ошибок в синтаксисе, то всегда будет выводить true
     
  9. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Если нет ошибок в синтаксисе, если это значение существует будет выведено ok
     
  10. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    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);

    ?>
     
  11. A1exx

    A1exx New Member

    Joined:
    8 Feb 2009
    Messages:
    24
    Likes Received:
    4
    Reputations:
    0
    Привет всем,необходимо сделать дамп БД, всё сделал,но есть косяк- как программно получить имена полей определённой таблицы, если они не идентичны по структуре, и уже программно записывать ,если два поля,то в скобках при 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 (";  // вот тут и проблемка... 
    
     
  12. Goodwin_

    Goodwin_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    61
    Likes Received:
    6
    Reputations:
    0
    если вдруг у кого-то есть скрипт, который ищет в каталогах и подкаталогах html файлы, найденных файлах ищет определенные слова и меняет на слова заданные в скрипте - поделитесь пожалуйста, буду благодарен :)
     
  13. Goodwin_

    Goodwin_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    61
    Likes Received:
    6
    Reputations:
    0
    может кому-то пригодится
    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; 
    }
    
     
  14. Taz

    Taz Member

    Joined:
    1 Feb 2010
    Messages:
    15
    Likes Received:
    5
    Reputations:
    0
    День добрый. Есть скрипт. При нажатии на кнопку получает время и заносит в базу (time_kill. time_resp задается ручками, time_out должен быть результат сложения двух столбиков, но что-то скрипт упорно сопротивляется.
    Вид таблицы:
    [​IMG]
    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>
    Может кто подсказать, что не так?
     
  15. Gvidion

    Gvidion Elder - Старейшина

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Как повторить это действие с помощью скрипта? Ну как отправить эти POST заголовки используя CURL?

    [​IMG]
     
  16. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Напиши в Гугле curl post запрос.
     
  17. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Gvidion, CURLOPT_POSTFIELDS
    $postdata = "act=add&al=1&from=profile&hash=abracadabra&mid=99616492";
     
  18. Gvidion

    Gvidion Elder - Старейшина

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Та вот в том то и шляпа, что вроде пишу так, а оно не делает что должно...
    PHP:
    $ch curl_init(); 
    $ch curl_init('http://vk.com/id17107382'); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_POSTFIELDS"act=add&al=1&from=profile&hash=36c6501521b705c96d&mid=17107382"); 
    curl_setopt($chCURLOPT_COOKIEFILE"cookies.txt"); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_exec($ch); 
    curl_close($ch);
     
  19. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Отправлять надо на al_friends.php
     
  20. Gvidion

    Gvidion Elder - Старейшина

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    Всё тот же результат. До этого авторизируюсь и получаю сообщение об успешной авторизации... С пабликом та же шляпа:

    PHP:
    $ch curl_init(); 
    $ch curl_init("http://vk.com/al_public.php"); 
    curl_setopt($chCURLOPT_POST1); 
    curl_setopt($chCURLOPT_POSTFIELDS"act=a_enter&al=1&hash=00c2709ed3ea2642a2&pid=23164653"); 
    curl_setopt($chCURLOPT_COOKIEFILE"cookies.txt"); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_exec($ch); 
    curl_close($ch);
     
Thread Status:
Not open for further replies.