PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 24
anoth3r Отправлено: 27 Января, 2010 - 11:19:38 • Тема: Работа с изображениями • Форум: Программирование на PHP

Ответов: 5
Просмотров: 311
JustUserR пишет:
Тот PHP-скрипт который дает уменьшенные изображения картинок генерирует их во время выполнения на основе передачи ему пути к файлу-картинке - таким образом генерируйте изображения типа echo "<a href=\"/path/to/big.jpg\"><img src=\"resizer.php?image=".urldecode("path/to/big.jpg")."\"></a>"; и так для всех картинок
При этом советую выводите не прямые ссылки на JPG-файлы а выводить их также во вспомогательном PHP-файле (Вероятно в этом же но с другими параметрами) чтобы не ломать общую навигацию


Спасибо большое. Помогло.
anoth3r Отправлено: 26 Января, 2010 - 20:46:03 • Тема: Работа с изображениями • Форум: Программирование на PHP

Ответов: 5
Просмотров: 311
Спасибо. А как выводить изображения как ссылки?
anoth3r Отправлено: 26 Января, 2010 - 19:07:43 • Тема: Работа с изображениями • Форум: Программирование на PHP

Ответов: 5
Просмотров: 311
Нужен был простенький image resizer. Нарыл в интернете код:
resizer.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. // f - имя файла
  4. // type - способ масштабирования
  5. // q - качество сжатия
  6. // src - исходное изображение
  7. // dest - результирующее изображение
  8. // w - ширниа изображения
  9. // ratio - коэффициент пропорциональности
  10. // str - текстовая строка
  11.  
  12. // тип преобразования, если не указаны размеры
  13. if ($type == 0) $w = 70;  // квадратная 70x70
  14. if ($type == 1) $w = 90;  // квадратная 90x90
  15. if ($type == 2) $w = 218; // пропорциональная шириной 218
  16.  
  17.  
  18. // качество jpeg по умолчанию
  19. if (!isset($q)) $q = 100;
  20.  
  21. // создаём исходное изображение на основе
  22. // исходного файла и опеределяем его размеры
  23. $src = imagecreatefromjpeg($f);
  24. $w_src = imagesx($src);
  25. $h_src = imagesy($src);
  26.  
  27. header("Content-type: image/jpeg");
  28.  
  29. // если размер исходного изображения
  30. // отличается от требуемого размера
  31. if ($w_src != $w)
  32. {
  33. // операции для получения прямоугольного файла
  34.    if ($type==2)
  35.    {
  36.        // вычисление пропорций
  37.        $ratio = $w_src/$w;
  38.        $w_dest = round($w_src/$ratio);
  39.        $h_dest = round($h_src/$ratio);
  40.  
  41.        // создаём пустую картинку
  42.        // важно именно truecolor!, иначе будем иметь 8-битный результат
  43.        $dest = imagecreatetruecolor($w_dest,$h_dest);
  44.        $str = "foxweb.net.ru";
  45.        imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
  46.  // определяем координаты вывода текста
  47.         $size = 2; // размер шрифта
  48.         $x_text = $w_dest-imagefontwidth($size)*strlen($str)-3;
  49.         $y_text = $h_dest-imagefontheight($size)-3;
  50.  
  51.         // определяем каким цветом на каком фоне выводить текст
  52.         $white = imagecolorallocate($dest, 255, 255, 255);
  53.         $black = imagecolorallocate($dest, 0, 0, 0);
  54.         $gray = imagecolorallocate($dest, 127, 127, 127);
  55.         if (imagecolorat($dest,$x_text,$y_text)>$gray) $color = $black;
  56.         if (imagecolorat($dest,$x_text,$y_text)<$gray) $color = $white;
  57.  
  58.         // выводим текст
  59.         imagestring($dest, $size, $x_text-1, $y_text-1, $str,$white-$color);
  60.         imagestring($dest, $size, $x_text+1, $y_text+1, $str,$white-$color);
  61.         imagestring($dest, $size, $x_text+1, $y_text-1, $str,$white-$color);
  62.         imagestring($dest, $size, $x_text-1, $y_text+1, $str,$white-$color);
  63.  
  64.         imagestring($dest, $size, $x_text-1, $y_text,   $str,$white-$color);
  65.         imagestring($dest, $size, $x_text+1, $y_text,   $str,$white-$color);
  66.         imagestring($dest, $size, $x_text,   $y_text-1, $str,$white-$color);
  67.         imagestring($dest, $size, $x_text,   $y_text+1, $str,$white-$color);
  68.  
  69.         imagestring($dest, $size, $x_text,   $y_text,   $str,$color);
  70.     }
  71.    // операции для получения квадратного файла
  72.     if (($type==0)||($type==1))
  73.     {
  74.          // создаём пустую квадратную картинку
  75.          // важно именно truecolor!, иначе будем иметь 8-битный результат
  76.          $dest = imagecreatetruecolor($w,$w);
  77.  
  78.          // вырезаем квадратную серединку по x, если фото горизонтальное
  79.          if ($w_src>$h_src)
  80.          imagecopyresized($dest, $src, 0, 0,
  81.                           round((max($w_src,$h_src)-min($w_src,$h_src))/2),
  82.                           0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
  83.  
  84.          // вырезаем квадратную верхушку по y,
  85.          // если фото вертикальное (хотя можно тоже серединку)
  86.          if ($w_src<$h_src)
  87.          imagecopyresized($dest, $src, 0, 0, 0, 0, $w, $w,
  88.                           min($w_src,$h_src), min($w_src,$h_src));
  89.  
  90.          // квадратная картинка масштабируется без вырезок
  91.          if ($w_src==$h_src)
  92.          imagecopyresized($dest, $src, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
  93.      }
  94.  
  95.         // вывод картинки и очистка памяти
  96.         imagejpeg($dest,'',$q);
  97.         imagedestroy($dest);
  98.         imagedestroy($src);
  99. }
  100.  


Чтобы вывести одну картинку на экран:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <img src="resizer.php">
  3.  

Вопрос состоит в том, как обрабатывать этим скриптом сразу много изображений (галерею) и выводить на экран?
anoth3r Отправлено: 14 Января, 2010 - 11:26:33 • Тема: Изминение ссылки • Форум: Программирование на PHP

Ответов: 12
Просмотров: 638
Возник ещё один вопрос.
Собственно вот мой .htaccess
CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine On
  2.  
  3. RewriteBase /
  4.  
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7.  
  8. RewriteRule ^([a-z,A-Z,0-9,_,-,.,/]+)$ /index.php?id=$0 [PT,L]


Cсылкa в виде "http://mysite/main.htm"
В переменную $_GET['id'] попадает main.htm. С помощю пхп скрипта режиться и с БД выбераются днные у которых есть поле со знчением main

Мне ещё нужно ссылки типа: "http://mysite/articles/article_1.htm".
Но дело в том что когда в адресную стороку попадает такая ссылка, все стили(CSS) и графика слетают.
Как сделать так чтбы все работало нормально?
anoth3r Отправлено: 13 Января, 2010 - 13:42:57 • Тема: Изминение ссылки • Форум: Программирование на PHP

Ответов: 12
Просмотров: 638
RomAndry пишет:
http://mysite/main[dot]html
по такой ссылки никто (ни сервер, ни человек, ни поисковик)
не поймет какое конкретное меню нужно
скорей всего может так:
http://mysite/menu/4/
?


Можно и так, но при этом не создавать папку menu/
Возможно так сделать?
И там не меню нужно вытаскивать, а данные. Допустим если ссылка типа:"http://mysite/main.html" тогда с БД вытаскиваем все данные у которых поле к примеру sys_name=main
anoth3r Отправлено: 13 Января, 2010 - 13:13:49 • Тема: Изминение ссылки • Форум: Программирование на PHP

Ответов: 12
Просмотров: 638
RomAndry пишет:
стоп, а причем тут ID?
по вашему вопросу понятно так
загружая web.html
в скрипт идет index.php?id=4

пожалуйста перечитайте свой вопрос и скорректируйте его


В цикле формируется меню типа:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href='http://mysite/index.php?id=вытащенное с БД id(1)'>Главная</a>
  3. <a href='http://mysite/index.php?id=вытащенное с БД id(2)'>О нас</a>
  4. и т.д.
  5.  


при нажатии на ссылку например:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href='http://mysite/index.php?id=вытащенное с БД id(1)'>Главная</a>
  3.  


С БД вытаскиваются данные с id=1
Вопрос состоит в том чтобы со ссылки "http://mysite/index.php?id=вытащенное с БД id" сделать "http://mysite/main.html"
Думаю в БД при создании страницы нужно указывать что-то типа системного имени (main) и потом данные вытаскивать с помощью этого системного имени.
Но я не знаю как это реализовать практически.
Или подскажите свои варианты и от примера тоже не откажусь.
anoth3r Отправлено: 13 Января, 2010 - 12:46:41 • Тема: Изминение ссылки • Форум: Программирование на PHP

Ответов: 12
Просмотров: 638
RomAndry пишет:
в .htaccess
CODE (text):
скопировать код в буфер обмена
  1.  
  2. RewriteEngine On
  3. RewriteRule ^web.html$ index.php?id=4 [QSA,L]
  4.  


Как это делать динамически? Ведь id меняется.
anoth3r Отправлено: 13 Января, 2010 - 12:25:54 • Тема: Изминение ссылки • Форум: Программирование на PHP

Ответов: 12
Просмотров: 638
У меня по id вытаскивается текст с базы ссылка типа: http://mysite/index.php?id=4. Как изменить ссылку так, чтобы она выглядела так: http://mysite/web[dot]html
anoth3r Отправлено: 15 Сентября, 2009 - 00:13:01 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Проблема решена событием onChange.
anoth3r Отправлено: 14 Сентября, 2009 - 22:03:34 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Возник ещё один вопрос.
Вобщем склепал я код типа:
CODE (text):
скопировать код в буфер обмена
  1. <div id="here"></div>
  2. <br>
  3. Виберите выражение:
  4. <br>
  5. <select id="select" name='expression'>
  6. <option value='none'></option>
  7. <option value='where'>WHERE</option>
  8. <option value='order_by'>ORDER BY</option>
  9. <option value='limit'>LIMIT</option>
  10. </select>
  11. <br>
  12. <script type="text/javascript">
  13. var objSel = document.getElementById("select");
  14. if(objSel.selectedIndex!=-1)
  15. {
  16.   if(objSel.options[objSel.selectedIndex].value=="where")
  17.   {
  18.     var wName = document.createElement("div");
  19.     wName.setAttribute("id","where");
  20.     wName.innerHTML="<input type=\"text\" name=\"w_name\">";
  21.     document.getElementById("here").appendChild(wName);
  22.   }
  23. }
  24. </script>

Я выбираю нужный элемент и только после обновления страницы появляеться поле.
Как сделать так чтобы поле появлялось сразу после выбора элемента?
anoth3r Отправлено: 13 Сентября, 2009 - 23:28:43 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Спасибо. Буду ковырять.
anoth3r Отправлено: 13 Сентября, 2009 - 19:39:58 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Что-то я там не увидел никакого select'a. Я только начинаю учить JS. Мне не помешал бы конкретный пример, а переделать под себя скрипт такого рода я пока не в состоянии.
anoth3r Отправлено: 13 Сентября, 2009 - 19:26:47 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Я знаю что так проще, но мне нужно именно через select.
Вопрос ещё в силе.
anoth3r Отправлено: 13 Сентября, 2009 - 18:11:17 • Тема: Работа с select • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 4892
Доброго времени суток.
Допустим у нас есть форма типа:
CODE (text):
скопировать код в буфер обмена
  1. <form method='post'>
  2. <select name='a'>
  3. <option value='none'></option>
  4. <option value='fio'>Ф.И.О</option>
  5. <option value='job'>Данные о работе</option>
  6. </select>
  7. </form>


Как сделать так чтобы при выборе элемента "Ф.И.О" JavaScript добавил в форму текст и пару полей типа:
CODE (text):
скопировать код в буфер обмена
  1. <form method='post'>
  2. Ф...
  3. <input type='text' name='l_name'>
  4. И..
  5. <input type='text' name='f_name'>
  6. О...
  7. <input type='text' name='otchestvo:)'>
  8. <a href='#' onClick='return someFunction(id)'>Удалить</a>
  9. <select name='a'>
  10. <option value='none'></option>
  11. <option value='fio'>Ф.И.О</option>
  12. <option value='job'>Данные о работе</option>
  13. </select>
  14. </form>

а при нажатии на ссылку "Удалить" добавленные поля и текст удалялись?
anoth3r Отправлено: 12 Сентября, 2009 - 11:54:26 • Тема: Добавление и удаление полей в форму • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 6760
Вот что получилось:
CODE (text):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. var countOfFields = 1; // Текущее число полей
  3. var maxFieldLimit = 30; // Максимальное число возможных полей
  4. function deleteField(id) {
  5. var delName = document.getElementById("name" + id);
  6. var delVal = document.getElementById("val" + id);
  7. delName.removeChild(delName);
  8. delVal.removeChild(delVal);
  9. countOfFields--;
  10. return false;
  11. }
  12.  
  13. function addField() {
  14.     if (countOfFields >= maxFieldLimit) {
  15.         alert("Число полей достигло своего максимума = " + maxFieldLimit);
  16.         return false;
  17.     }
  18. countOfFields++;
  19.  
  20. var name = document.createElement("div");
  21. var val = document.createElement("div");
  22. name.setAttribute("id" , "name" + countOfFields);
  23. val.setAttribute("id" , "val" + countOfFields);
  24. name.innerHTML = countOfFields + ".<input name=\"col_name[" + countOfFields + "]\" type=\"text\" /> <a onclick=\"return deleteField(" + countOfFields + ")\" href=\"#\">[X]</a>";
  25. val.innerHTML = countOfFields + ".<input name=\"col_val[" + countOfFields + "]\" type=\"text\" />";
  26. document.getElementById("colName").appendChild(name);
  27. document.getElementById("colVal").appendChild(val);
  28. return false;
  29. }
  30. </script>

Функция addField работает, функция deleteField не работает.
Ошибка функции deleteField:
Цитата:
Node was not found" code: "8
delName.removeChild(delName);

(Добавление)
Заработало Хай!
Нужно было между елементом и removeChild прописать parentNode.
function deleteField:
CODE (text):
скопировать код в буфер обмена
  1. function deleteField(id) {
  2. var delName = document.getElementById("name" + id);
  3. var delVal = document.getElementById("val" + id);
  4. delName.parentNode.removeChild(delName);
  5. delVal.parentNode.removeChild(delVal);
  6. countOfFields--;
  7. return false;
  8. }

Всем огромное спасибо! Очень помогли.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB