Архив

Публикации с меткой ‘PHP’

Чтобы узнать, делится ли число например на 4, условие будет выглядеть так:

(($num % 4) == 0)

Как пример:

<?php
for ($num=1;$num<=100;$num++)
{
   if (($num % 4) == 0)
   {
      echo "<b>".$num."</b>&nbsp;делится на 4<br/>";
   }
   else
   {
      echo "<b>".$num."</b>&nbsp;не делится на 4<br/>";
   }
}
?>

Хотя правильнее для этого примера будет:

<?php
for ($num=1;$num<=100;$num++)
{
   echo "<b>".$num."</b>&nbsp;";
   if (($num % 4) != 0)
   {
      echo "не&nbsp;";
   }
   echo "делится&nbsp;на&nbsp;4<br/>";
}
?>
Categories: PHP Tags:

Если расширение файла известно то совсем просто (в примере для jpg):

$f="path/to/imagename.jpg";
$src = imagecreatefromjpeg($f);
$w_src = imagesx($src); 
$h_src = imagesy($src);

$w_src — ширина в пикселях;
$h_src — высота.
Для png:

$src = imagecreatefrompng($f);

Для gif:

$src = imagecreatefromgif($f);

Если тип файла заранее неизвестен то как определить подробно написано сдесь: Определить расширение файла средствами PHP

Categories: PHP Tags:

$path — конечно путь к файлу..
1. explode() — полученная строка преобразуется в массив строк, границами которых в оригинале был разделитесь «точка». Для случаев, когда точек несколько — end() возвращает последний элемент массива.

end(explode(".", $path));

2. pathinfo() возвращает ассоциативный массив, содержащий информацию о нужном файле, а именно элементы dirname, basename и extension (если задача узнать не только расширение файла).

$path_info = pathinfo($path);
$ext = $path_info['extension'];

3. strrpos() возвращает позицию последней точки в строке, а substr() вырезает все символы, начиная с полученной ранее позиции точки, до конца строки. Для удаления точки в полученной подстроке, увеличиваем начало старта на одно смещение вправо (+1).

substr($fileName, strrpos($path, '.') + 1);

4. strrchr() возвращает участок строки, следующий за указанным параметром (в нашем случае точкой), после чего substr() отрезает первый символ — точку.

substr(strrchr($path, '.'), 1);

5. array_pop() — выталкивает элемент в конце массива, end() — устанавливает внутренний указатель массива на последний элемент.

array_pop(explode(".", $path));

6. pathinfo

pathinfo($path, PATHINFO_EXTENSION);

7. preg_replace

preg_replace('/^.*\.(.*)$/U', '$1', $path);

8. preg_match

preg_match('/\.(.*)$/U', $path, $matches)? $matches[1]: '';

Подробнее в источнике: http://habrahabr.ru/blogs/php/37753/

Categories: PHP Tags:
30 апреля 2010 Нет комментариев

Нужен результат: меняется фон ячейки таблицы при наведении на нее мыши.
Допустим, переменная $classname может принимать значения current и nocurrent. Менять фон нужно только для nocurrent. Используем такие стили:

.nocurrent {
background: white;
}
.current {
background: red;
}
.nocurrent:hover {
background: red;
}
echo "<td class='".$classname."'>some text</td>";

В IE6 такой вариант работать не будет.
Можно так (но для current cтиль тоже будет меняться):

echo "<td class='".$classname."' onmouseover='style.backgroundColor=\"red\";' onmouseout='style.backgroundColor=\"white\";'>some text</td>";

Правильный вариант, ну во всяком случае у меня так получилось :)

function RPClass(hi) {
   if (hi.className == 'nocurrent') {
      hi.className = 'current_js';
   }
}
function RPClassR(hi) {
   if (hi.className == 'current_js') {
      hi.className = 'nocurrent';
   }
}
echo "<td class='".$classname."' onmouseover='RPClass(this);' onmouseout='RPClassR(this);'>some text</td>";

CSS (:hover теперь не нужен, стили просто будут меняться, вместо него второй стиль):

.current_js {
background: red;
}
Categories: CSS, Javascript Tags: , , ,
17 апреля 2010 1 комментарий

Использовалась Ip-камера Media Tech MT4009, смотреть которую можно только через Internet Explorer, т.к. ей нужен ActiveX. Умеет делать снимки по движению — 97 кадров, после чего перезаписывает старые файлы, т.е. текущий снимок может иметь какое угодно имя. Файлы сохраняет в папку c:\tmp\webmd, настроек чтобы изменить путь для сохранения нет. Получилось все так:
1. Расшариваем папку webmd.
2. На Web-сервере, с которого будем смотреть картинку: предположительно у нас там FreeBSD с установленным apache. Монтируем расшаренную папку. Для монтирования создаем скрипт webmd_up.sh:

#!/bin/bash
mount_smbfs -W DOMAIN_NAME -I 172.16.5.19 //username@pc_name/webmd/ /usr/home/username/public_html/remote

Для отмонтирования webmd_down.sh:

#!/bin/bash
umount /usr/home/username/public_html/remote

3. index.php:

<?php
define('PATH', 'remote/*.');
foreach (glob(PATH.'jpg') as $remote_file)
{
   $files_array[$remote_file] = filemtime($remote_file);
}
asort($files_array);
$keys = array_keys($files_array);
$selected_file = array_pop($keys);
echo "<img src='".$selected_file."?nocashe=".time()."' alt='webmd current' title='webmd' />";
?>

?nocashe=".time()." — нужно для того, чтобы отключить кэширование изображений.
4. На стрничке, где будем смотреть картинку, удобным для вас способом подключаем такой javascript:

function refresh() {
   document.all.webmd.src = document.all.webmd.src;
}
window.setInterval("refresh()", 1000);
var html = "<iframe name=\"webmd\" src=\"http://domain_name/~username/\" width=\"640px\" height=\"480px\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\"></iframe>";
document.write(html);
Categories: Unix, Web Tags: , ,
15 апреля 2010 Нет комментариев
  1. <?php
  2. $host = "hostname";
  3. $connect = ftp_connect($host);
  4. if (!$connect)
  5. {
  6.    echo "connect fail<br/>";
  7. }
  8. else
  9. {
  10.    echo "connect ok<br/>";
  11. }
  12. $user = "username";
  13. $password = "some_pass";
  14. $result = ftp_login($connect, $user, $password);
  15. $dir = ftp_pwd($connect);
  16. echo $dir."<br/>";
  17. define('PATH', 'md/*.');
  18. foreach (glob(PATH.'txt') as $local_file)
  19. {
  20.    $files_array[$local_file] = filemtime($local_file);
  21. }
  22. asort($files_array);
  23. $keys = array_keys($files_array);
  24. $upl_file = array_pop($keys);
  25. $remote_file = "remote.txt";
  26. if (ftp_put($connect, $remote_file, $upl_file, FTP_BINARY))
  27. {
  28.    echo "upload ok<br/>";
  29. }
  30. else
  31. {
  32.    echo "upload fail<br/>";
  33. }
  34. ftp_quit($connect);
  35. ?>
Categories: PHP Tags:
15 апреля 2010 Нет комментариев
  1. <?php
  2. $host = "hostname";
  3. $connect = ftp_connect($host);
  4. if (!$connect)
  5. {
  6.    echo "connect fail<br/>";
  7. }
  8. else
  9. {
  10.    echo "connect ok<br/>";
  11. }
  12. $user = "username";
  13. $password = "some_pass";
  14. $result = ftp_login($connect, $user, $password);
  15. $dir = ftp_pwd($connect);
  16. echo $dir."<br/>";
  17. $od = opendir('md');
  18. while ($local_file = readdir($od))
  19. {
  20.    if ($local_file != "." && $local_file != "..")
  21.    {
  22.       echo $local_file."<br/>";
  23.       $upl_file = "md/".$local_file;
  24.       $remote_file = "remote_".$local_file;
  25.       if (ftp_put($connect, $remote_file, $upl_file, FTP_BINARY))
  26.       {
  27.          echo "upload ok<br/>";
  28.       }
  29.       else
  30.       {
  31.          echo "upload fail<br/>";
  32.       }
  33.    }
  34. }
  35. $cl = closedir($od);
  36. ftp_quit($connect);
  37. ?>
Categories: PHP Tags: