PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (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 - 19:07:43 • Тема: Работа с изображениями • Форум: Программирование на PHP
Ответов: 5 Просмотров: 311
Нужен был простенький image resizer. Нарыл в интернете код:
resizer.php
PHP:
скопировать код в буфер обмена
<?PHP
// f - имя файла
// type - способ масштабирования
// q - качество сжатия
// src - исходное изображение
// dest - результирующее изображение
// w - ширниа изображения
// ratio - коэффициент пропорциональности
// str - текстовая строка
// тип преобразования, если не указаны размеры
if ( $type == 0) $w = 70 ; // квадратная 70x70
if ( $type == 1) $w = 90 ; // квадратная 90x90
if ( $type == 2) $w = 218 ; // пропорциональная шириной 218
// качество jpeg по умолчанию
if ( ! isset ( $q ) ) $q = 100 ;
// создаём исходное изображение на основе
// исходного файла и опеределяем его размеры
header ( "Content-type: image/jpeg" ) ;
// если размер исходного изображения
// отличается от требуемого размера
if ( $w_src != $w )
{
// операции для получения прямоугольного файла
if ( $type == 2 )
{
// вычисление пропорций
$ratio = $w_src / $w ;
$w_dest = round ( $w_src / $ratio ) ; $h_dest = round ( $h_src / $ratio ) ;
// создаём пустую картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$str = "foxweb.net.ru" ;
// определяем координаты вывода текста
$size = 2 ; // размер шрифта
// определяем каким цветом на каком фоне выводить текст
if ( imagecolorat ( $dest , $x_text , $y_text ) > $gray ) $color = $black ; if ( imagecolorat ( $dest , $x_text , $y_text ) < $gray ) $color = $white ;
// выводим текст
imagestring ( $dest , $size , $x_text - 1
, $y_text - 1
, $str , $white - $color ) ; imagestring ( $dest , $size , $x_text + 1
, $y_text + 1
, $str , $white - $color ) ; imagestring ( $dest , $size , $x_text + 1
, $y_text - 1
, $str , $white - $color ) ; imagestring ( $dest , $size , $x_text - 1
, $y_text + 1
, $str , $white - $color ) ;
imagestring ( $dest , $size , $x_text - 1
, $y_text , $str , $white - $color ) ; imagestring ( $dest , $size , $x_text + 1
, $y_text , $str , $white - $color ) ; imagestring ( $dest , $size , $x_text , $y_text - 1
, $str , $white - $color ) ; imagestring ( $dest , $size , $x_text , $y_text + 1
, $str , $white - $color ) ;
imagestring ( $dest , $size , $x_text , $y_text , $str , $color ) ; }
// операции для получения квадратного файла
if ( ( $type == 0) || ( $type == 1 ) )
{
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
// вырезаем квадратную серединку по x, если фото горизонтальное
if ( $w_src > $h_src )
0
, $w , $w , min ( $w_src , $h_src ) , min ( $w_src , $h_src ) ) ;
// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)
if ( $w_src < $h_src )
min ( $w_src , $h_src ) , min ( $w_src , $h_src ) ) ;
// квадратная картинка масштабируется без вырезок
if ( $w_src == $h_src )
}
// вывод картинки и очистка памяти
}
Чтобы вывести одну картинку на экран:
Вопрос состоит в том, как обрабатывать этим скриптом сразу много изображений (галерею) и выводить на экран?
anoth3r
Отправлено: 14 Января, 2010 - 11:26:33 • Тема: Изминение ссылки • Форум: Программирование на PHP
Ответов: 12 Просмотров: 638
Возник ещё один вопрос.
Собственно вот мой .htaccess
CODE (
text ):
скопировать код в буфер обмена
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
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
Можно и так, но при этом не создавать папку 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 ):
скопировать код в буфер обмена
<a href = 'http://mysite/index.php?id=вытащенное с БД id(1)' > Главная</ a >
<a href = 'http://mysite/index.php?id=вытащенное с БД id(2)' > О нас</ a >
и т.д.
при нажатии на ссылку например:
С БД вытаскиваются данные с id=1
Вопрос состоит в том чтобы со ссылки "http://mysite/index.php?id=вытащенное с БД id" сделать "http://mysite/main.html"
Думаю в БД при создании страницы нужно указывать что-то типа системного имени (main) и потом данные вытаскивать с помощью этого системного имени.
Но я не знаю как это реализовать практически.
Или подскажите свои варианты и от примера тоже не откажусь.
anoth3r
Отправлено: 14 Сентября, 2009 - 22:03:34 • Тема: Работа с select • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 4892
Возник ещё один вопрос.
Вобщем склепал я код типа:
CODE (
text ):
скопировать код в буфер обмена
<div id="here"></div>
<br>
Виберите выражение:
<br>
<select id="select" name='expression'>
<option value='none'></option>
<option value='where'>WHERE</option>
<option value='order_by'>ORDER BY</option>
<option value='limit'>LIMIT</option>
</select>
<br>
<script type="text/javascript">
var objSel = document.getElementById("select");
if(objSel.selectedIndex!=-1)
{
if(objSel.options[objSel.selectedIndex].value=="where")
{
var wName = document.createElement("div");
wName.setAttribute("id","where");
wName.innerHTML="<input type=\"text\" name=\"w_name\">";
document.getElementById("here").appendChild(wName);
}
}
</script>
Я выбираю нужный элемент и только после обновления страницы появляеться поле.
Как сделать так чтобы поле появлялось сразу после выбора элемента?
anoth3r
Отправлено: 13 Сентября, 2009 - 19:39:58 • Тема: Работа с select • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 4892
Что-то я там не увидел никакого select'a. Я только начинаю учить JS. Мне не помешал бы конкретный пример, а переделать под себя скрипт такого рода я пока не в состоянии.
anoth3r
Отправлено: 13 Сентября, 2009 - 18:11:17 • Тема: Работа с select • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 4892
Доброго времени суток.
Допустим у нас есть форма типа:
CODE (
text ):
скопировать код в буфер обмена
<form method='post'>
<select name='a'>
<option value='none'></option>
<option value='fio'>Ф.И.О</option>
<option value='job'>Данные о работе</option>
</select>
</form>
Как сделать так чтобы при выборе элемента "Ф.И.О" JavaScript добавил в форму текст и пару полей типа:
CODE (
text ):
скопировать код в буфер обмена
<form method='post'>
Ф...
<input type='text' name='l_name'>
И..
<input type='text' name='f_name'>
О...
<input type='text' name='otchestvo:)'>
<a href='#' onClick='return someFunction(id)'>Удалить</a>
<select name='a'>
<option value='none'></option>
<option value='fio'>Ф.И.О</option>
<option value='job'>Данные о работе</option>
</select>
</form>
а при нажатии на ссылку "Удалить" добавленные поля и текст удалялись?
anoth3r
Отправлено: 12 Сентября, 2009 - 11:54:26 • Тема: Добавление и удаление полей в форму • Форум: JavaScript & VBScript
Ответов: 8 Просмотров: 6760
Вот что получилось:
CODE (
text ):
скопировать код в буфер обмена
<script type="text/javascript">
var countOfFields = 1; // Текущее число полей
var maxFieldLimit = 30; // Максимальное число возможных полей
function deleteField(id) {
var delName = document.getElementById("name" + id);
var delVal = document.getElementById("val" + id);
delName.removeChild(delName);
delVal.removeChild(delVal);
countOfFields--;
return false;
}
function addField() {
if (countOfFields >= maxFieldLimit) {
alert("Число полей достигло своего максимума = " + maxFieldLimit);
return false;
}
countOfFields++;
var name = document.createElement("div");
var val = document.createElement("div");
name.setAttribute("id" , "name" + countOfFields);
val.setAttribute("id" , "val" + countOfFields);
name.innerHTML = countOfFields + ".<input name=\"col_name[" + countOfFields + "]\" type=\"text\" /> <a onclick=\"return deleteField(" + countOfFields + ")\" href=\"#\">[X]</a>";
val.innerHTML = countOfFields + ".<input name=\"col_val[" + countOfFields + "]\" type=\"text\" />";
document.getElementById("colName").appendChild(name);
document.getElementById("colVal").appendChild(val);
return false;
}
</script>
Функция addField работает, функция deleteField не работает.
Ошибка функции deleteField:
Цитата: Node was not found" code: "8
delName.removeChild(delName);
(Добавление)
Заработало
Нужно было между елементом и removeChild прописать parentNode.
function deleteField:
CODE (
text ):
скопировать код в буфер обмена
function deleteField(id) {
var delName = document.getElementById("name" + id);
var delVal = document.getElementById("val" + id);
delName.parentNode.removeChild(delName);
delVal.parentNode.removeChild(delVal);
countOfFields--;
return false;
}
Всем огромное спасибо! Очень помогли.
Страниц (2): [1] 2 »
Powered by ExBB FM 1.0 RC1. InvisionExBB