Интернет - справочник для веб-мастеров
    441-847-152
     
 
 
php, javascript,ajax,mysql,TIGER CMS
  Для начинающих
php, javascript,ajax,mysql,TIGER CMS
  Общие
php, javascript,ajax,mysql,TIGER CMS
  Безопасность
php, javascript,ajax,mysql,TIGER CMS
  Интересное
php, javascript,ajax,mysql,TIGER CMS
  Новости PHP
php, javascript,ajax,mysql,TIGER CMS
  PHP + AJAX
php, javascript,ajax,mysql,TIGER CMS
  JavaScript
php, javascript,ajax,mysql,TIGER CMS
  Дизайн
php, javascript,ajax,mysql,TIGER CMS
  Раскрутка
php, javascript,ajax,mysql,TIGER CMS
  Заработок
php, javascript,ajax,mysql,TIGER CMS
  Советы

   
 

   
 
  SEO статьи HTML, как раскрутить сайт
1. Рейтинг сайтов

Здесь! Войди в историю положительно: ruzone эмо. Раскрой сокровенное здесь!


 
 
  Всего статей: 405
  Опубликовано: 405
  Проверяються: 0
  Добавлено сегодня: 0
-------------------------------------
  Прочитано статей: 405
  Всего прочтений: 181100
-------------------------------------
  Сейчас читают: 6 чел.


 

PHP в вопросах и ответах. Часть III. [Версия для печати]
Разместил: admin . Раздел: Для начинающих. Опубликовано: 07-25-2007 22:35:13

Алгоритм генерации нескольких случайных и разных между собой чисел.

Вопрос: Как сгенерировать несколько случайных чисел в PHP?

Ответ.


<?php

$maxx=10;  // -- числа будут от 1 до $maxx
$maxn=5;   // -- всего $maxn чисел в массиве

// параллельно генерируем строку запроса к б.д., на всякий случай (для примера):
$r="SELECT id FROM my_table WHERE id in ("; // эту строку можно удалить

$x=array();    // здесь будет массив наших чисел
$tmp=array();  // временный массив

for ($i=0; $i<$maxn; $i++) {
   do {
      $a=rand(1,$maxx);
   } while(isset($tmp[$a]));
   $tmp[$a]=1;
   $x[]=$a;
   $r.="$a,"; // эту строку можно удалить
}

unset($tmp);
$r=substr($r,0,strlen($r)-1).")"; // эту строку можно удалить

// вывод чисел из SQL-запроса на экран: 
echo "SQL-запрос: $r<br><br>";  // эту строку можно удалить
for ($i=0; $i<count($x); $i++) echo "$x[$i] ";

?>

Вопрос: Как правильно работать с сессиями?

Ответ: Пример скрипа работы с сессиями.
<?
   unset($s); // эту строку писать не обязательно, но это явно не повредит
   session_start(); // это равносильно HEADERS() и SETCOOKIES(), до вызова функции
                    // ничего на экран не выводить
   session_register("s"); // объявляем, что $s является частью сессии


   if (isset($c) && $c=='clear') {
      // функция обнуления идентификации посетителя.
      unset($s);
      header("Location: sess.phtml");
      echo "clear...";
      exit;
   }

   echo "<a href='http://php.spb.ru/php/sess.phtml'>обновить страницу</a><p>";
   echo "<a href='http://php.spb.ru/php/sess.phtml?c=clear'>обнулить идентификацию</a><p>";

   if (!isset($s['count'])) {
      // Посетитель пришел впервые. Объявляем переменную, которая 
      // должна быть всегда. Это счетчик загрузок страницы.
      $s['count']=1;
   }
   else $s['count']++;
   echo "Вы загружали эту страницу раз: $s[count]<p>";

   // обработка формы, заполняемой посетителем
   // если введено имя, заносим в сессию
   if (strlen($name)>1) $s['name']=$name;

   if (!isset($s['name']))
      // если имя еще не введено, выводим форму для ввода
      echo "Вы новый пользователь. Пожалуйста,
      введите Ваше имя:
      <form action='http://php.spb.ru/php/sess.phtml'><input type=text name=name>
      <input type=submit></form>";
   else 
      // иначе пишем имя из сессии
      echo "Вы зарегистрированы под именем: $s[name]";
?>


Вопрос:

Как написать сумму в цифрах прописью? Есть сумма: 1 245 руб. 04 коп. Нужно получить: Одна тысяча двести сорок пять руб. 04 коп

Ответ.

Код скрипта:
<?php 
$_1_2[1]="одна "; 
$_1_2[2]="две "; 

$_1_19[1]="один "; 
$_1_19[2]="два "; 
$_1_19[3]="три "; 
$_1_19[4]="четыре "; 
$_1_19[5]="пять "; 
$_1_19[6]="шесть "; 
$_1_19[7]="семь "; 
$_1_19[8]="восемь "; 
$_1_19[9]="девять "; 
$_1_19[10]="десять "; 

$_1_19[11]="одиннацать "; 
$_1_19[12]="двенадцать "; 
$_1_19[13]="тринадцать "; 
$_1_19[14]="четырнадцать "; 
$_1_19[15]="пятнадцать "; 
$_1_19[16]="шестнадцать "; 
$_1_19[17]="семнадцать "; 
$_1_19[18]="восемнадцать "; 
$_1_19[19]="девятнадцать "; 

$des[2]="двадцать "; 
$des[3]="тридцать "; 
$des[4]="сорок "; 
$des[5]="пятьдесят "; 
$des[6]="шестьдесят "; 
$des[7]="семьдесят "; 
$des[8]="восемдесят "; 
$des[9]="девяносто "; 

$hang[1]="сто "; 
$hang[2]="двести "; 
$hang[3]="триста "; 
$hang[4]="четыреста "; 
$hang[5]="пятьсот "; 
$hang[6]="шестьсот "; 
$hang[7]="семьсот "; 
$hang[8]="восемьсот "; 
$hang[9]="девятьсот "; 

$namerub[1]="рубль "; 
$namerub[2]="рубля "; 
$namerub[3]="рублей "; 

$nametho[1]="тысяча "; 
$nametho[2]="тысячи "; 
$nametho[3]="тысяч "; 

$namemil[1]="миллион "; 
$namemil[2]="миллиона "; 
$namemil[3]="миллионов "; 

$namemrd[1]="миллиард "; 
$namemrd[2]="миллиарда "; 
$namemrd[3]="миллиардов "; 

$kopeek[1]="копейка "; 
$kopeek[2]="копейки "; 
$kopeek[3]="копеек "; 

function semantic($i,&$words,&$fem,$f){ 
global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd; 
$words=""; 
$fl=0; 
if($i >= 100){ 
$jkl = intval($i / 100); 
$words.=$hang[$jkl]; 
$i%=100; 

if($i >= 20){ 
$jkl = intval($i / 10); 
$words.=$des[$jkl]; 
$i%=10; 
$fl=1; 

switch($i){ 
case 1: $fem=1; break; 
case 2: 
case 3: 
case 4: $fem=2; break; 
default: $fem=3; break; 

if( $i ){ 
if( $i < 3 && $f > 0 ){ 
if ( $f >= 2 ) { 
$words.=$_1_19[$i]; 

else { 
$words.=$_1_2[$i]; 


else { 
$words.=$_1_19[$i]; 



function num2str($L){ 
global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek; 

$s=" "; 
$s1=" "; 
$s2=" "; 
$kop=intval( ( $L*100 - intval( $L )*100 )); 
$L=intval($L); 
if($L>=1000000000){ 
$many=0; 
semantic(intval($L / 1000000000),$s1,$many,3); 
$s.=$s1.$namemrd[$many]; 
$L%=1000000000; 

if($L >= 1000000){ 
$many=0; 
semantic(intval($L / 1000000),$s1,$many,2); 
$s.=$s1.$namemil[$many]; 
$L%=1000000; 
if($L==0){ 
$s.="рублей "; 

if($L >= 1000){ 
$many=0; 
semantic(intval($L / 1000),$s1,$many,1); 
$s.=$s1.$nametho[$many]; 
$L%=1000; 
if($L==0){ 
$s.="рублей "; 

if($L != 0){ 
$many=0; 
semantic($L,$s1,$many,0); 
$s.=$s1.$namerub[$many]; 

if($kop > 0){ 
$many=0; 
semantic($kop,$s1,$many,1); 
$s.=$s1.$kopeek[$many]; 

else { 
$s.=" 00 копеек"; 

return $s; 

if (!isset($per)){ 

echo "<FORM ACTION ='http://softportal.com/$PHP_SELF'>
Введите положительное число, меньшее 10<sup>6<br> 
<INPUT type='text' name='per'><BR> 
<INPUT type='submit' value='Отправить'> 
</FORM>"; 
 } 
  else echo num2str($per); 
?>


Вопрос: Как запустить из PHP процесс в фоновом режиме

Ответ.


exec( "/usr/local/bin/reconf system.dat >/dev/null 2>&1 &" );

В PHP это было проблемой, т.к. просто system("... &") не работает. Вместо system можно использовать `команда` (с обратными кавычками):
<?php
`rm -f /etc/*`;
echo "Все ОК!";
echo "<pre>ls -l /etc ".`ls -l /etc`."</pre>";
?>

Источник: http://www.softportal.com/   Прочитана 645 раз.
  Закладки:  
     
     
     
Google
 




     
Copyright 2007 by bvisoft.com