Dreammaker: also, ну так смотрите у себя в коде откуда у вас берутся лишние переносы, при добавлении или же при выводе.
хм.. дело в том, что trim(), как оказалось, не повлиял на код, просто новость короче стала, вот и выводит ее. Вывел то, что в переменной:
var tbl_top = ''; var tbl_bot = '<'+'/table>'; var tbl_left = '
'; var tbl_right = ''; var a_url = 'http://news.yanclex.com/./news/'; var a_target = 'target="_blank"'; document.write(tbl_top); var tbl_top = ''; var tbl_bot = '<'+'/table>'; var tbl_left = '
'; var tbl_right = ''; var a_url = 'http://news.yanclex.com/./news/'; var a_target = 'target="_blank"'; document.write(tbl_top);
Допустим У нас есть картинка 500х500 ($src) и нам надо вырезать у неё прямоугольник в 98х99 пикселей начиная с координаты 51, 52 и сунуть в картинку ($dst) 98х99 пикселей
bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
Делается это так: imagecopyresampled ( $dst, $src, 0 (координата Х левого верхнего угла прямоугольника в целевой картинке), 0 (координата У левого верхнего угла прямоугольника в целевой картинке), 51 (координата Х левого верхнего угла прямоугольника в исходной картинке), 51 (............... У .................... ), 98 (ширина прямоугольника в целевой картинке), 99 (высота ............), 98 (ширина прямоугольника в оригинальной картинке), 99 (высота.....) );
Объясню как оно работает еще раз :)
Мы задаём два прямоугольника (_x, _y, _w, _h) прямоугольник SRC и прямоугольник DST. А потом функция берет все пиксели прямоугольника SRC и ресайзит в прямоугольник DST. Соответственно если src_w == dst_w && src_h == dst_h - то ресайза не будет, т.к. прямоугольники имеют одинаковый размер, а будет просто кроп.
Понятно? :)
Подставил Ваши значения - то же самое. С нулевыми координатами ресайзит правильно, но нужен не ресайз (
HapKOTuK: bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
dst_x, dst_y, dst_w, dst_h - задают прямоугольную область куда нужно копировать src_x, src_y, src_w, src_h - задают прямоугольную область в картинке оригинала откуда надо копировать,
_x, _y - это координата точки левого верхнего угла _w, _h - это НЕ КООРДИНАТА, это смещение от левого верхнего угла.
В вышем случае, если вы хотите сделать просто уменьшенную версию оригинальной картинки, вам нужно src_x, src_y, dst_x, dst_y - установить в ноль src_w, src_h - размер оригинальной картинки dst_w, dst_h - размер превью
остально оно сделает само %)
А что поправить, думаю, поймёте сами :)
Мне нужен не ресайз, а именно вырезание.
Честно сказать - уже всю ночь курил маны, но так и не допер, где прошляпил.. Подскажите, плз, если не сложно.. :(
n1g3r: Да я не спорю, что сейчас аккаунты на форум продаются (правда не знаю где именно, предположительно на нулледе) зы. Сорь за исповедь.
На нулледе продажа акков запрещена как самого нулледа, так и посторонних ресурсов. Если владеете какой-то информацией по данному вопросу - инфу в личку, тема будет немедленно удалена, автор получит пожизненный бан, это я вам обещаю.
з.ы. А обвинять ресурс в барыжничестве акками по личным предположениям без доказательств как-то не красиво.
/*
* Исправление кодировки букв "ш" и "И" в MYSQL
* автор: Nc_Soft
* 18.07.09
*/
/*
Частенько встречается при переносе бд, либо при шаманстве с кодировками
буквы "ш" и "И" оказываются битыми (речь идет о utf-8 конечно)
буква "ш" = chr(209).chr(63) / правильно chr(209).chr(136)
буква "И" = chr(208).chr(63) / правильно chr(208).chr(152)
Чтобы пофиксить делаем 2 запроса
*/
но тоже не прокатило. Возможно потому, что в базе прописало другие символы (в переменной они выглядят, как �?, а в базе просто два вопросительных знака). Пришла тут в голову идея заменить эти самые �? на "И" через preg_replace в самой переменной. Кто умеет составлять регулярки, откликнитесь, плз!
с чего вы сделали выводы, что апач что-то добавляет?
С того, что под апачем 1.3 работает, а с 2.0 нет
also, ну так смотрите у себя в коде откуда у вас берутся лишние переносы, при добавлении или же при выводе.
хм.. дело в том, что trim(), как оказалось, не повлиял на код, просто новость короче стала, вот и выводит ее. Вывел то, что в переменной:
Лишние переносы ставит апач, вот в чем проблема.
also, тьфу :) я подумал, что это не ваш сайт, в подпись не глянул.
Попробуйте вместо $res['text'] написать trim($res['text'])
Хм.. Частично помогло: Если выводить один блок, то работает:
<script src='http://news.yanclex.com/inform/inform3.php?inf=44&num=1&code=utf-8'></script>
Если больше, то нет:
<script src='http://news.yanclex.com/inform/inform3.php?inf=44&num=3&code=utf-8'></script>
До этого не работало даже с одним.😎
судя по всему ошибка в коде, который возвращает news.yanclex.com.
Ну так то ясно. Как ее исправить-то? Как я понял, апач принудительно разбивает длинный яваскрипт. Как сделать перенос в коде?
also, первым делом показать javascript, который выводится в html.
<script src='http://news.yanclex.com/inform/inform3.php?inf=44&num=1&code=utf-8'></script>
Спасибо огромное, все получилось!
Проблема-то в чём?
Допустим У нас есть картинка 500х500 ($src) и нам надо вырезать у неё прямоугольник в 98х99 пикселей начиная с координаты 51, 52 и сунуть в картинку ($dst) 98х99 пикселей
bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
Делается это так:
imagecopyresampled (
$dst,
$src,
0 (координата Х левого верхнего угла прямоугольника в целевой картинке),
0 (координата У левого верхнего угла прямоугольника в целевой картинке),
51 (координата Х левого верхнего угла прямоугольника в исходной картинке),
51 (............... У .................... ),
98 (ширина прямоугольника в целевой картинке),
99 (высота ............),
98 (ширина прямоугольника в оригинальной картинке),
99 (высота.....)
);
Объясню как оно работает еще раз :)
Мы задаём два прямоугольника (_x, _y, _w, _h) прямоугольник SRC и прямоугольник DST.
А потом функция берет все пиксели прямоугольника SRC и ресайзит в прямоугольник DST.
Соответственно если src_w == dst_w && src_h == dst_h - то ресайза не будет, т.к. прямоугольники имеют одинаковый размер, а будет просто кроп.
Понятно? :)
Подставил Ваши значения - то же самое. С нулевыми координатами ресайзит правильно, но нужен не ресайз (
bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
dst_x, dst_y, dst_w, dst_h - задают прямоугольную область куда нужно копировать
src_x, src_y, src_w, src_h - задают прямоугольную область в картинке оригинала откуда надо копировать,
_x, _y - это координата точки левого верхнего угла
_w, _h - это НЕ КООРДИНАТА, это смещение от левого верхнего угла.
В вышем случае, если вы хотите сделать просто уменьшенную версию оригинальной картинки, вам нужно
src_x, src_y, dst_x, dst_y - установить в ноль
src_w, src_h - размер оригинальной картинки
dst_w, dst_h - размер превью
остально оно сделает само %)
А что поправить, думаю, поймёте сами :)
Мне нужен не ресайз, а именно вырезание.
Честно сказать - уже всю ночь курил маны, но так и не допер, где прошляпил.. Подскажите, плз, если не сложно.. :(
Чтобы было понятней, о чем я, вот пример работы:
http://up-image.ru/crop/tests/1.php
Да я не спорю, что сейчас аккаунты на форум продаются (правда не знаю где именно, предположительно на нулледе)
зы. Сорь за исповедь.
На нулледе продажа акков запрещена как самого нулледа, так и посторонних ресурсов. Если владеете какой-то информацией по данному вопросу - инфу в личку, тема будет немедленно удалена, автор получит пожизненный бан, это я вам обещаю.
з.ы. А обвинять ресурс в барыжничестве акками по личным предположениям без доказательств как-то не красиво.
В общем, предложили вариант:
* Исправление кодировки букв "ш" и "И" в MYSQL
* автор: Nc_Soft
* 18.07.09
*/
/*
Частенько встречается при переносе бд, либо при шаманстве с кодировками
буквы "ш" и "И" оказываются битыми (речь идет о utf-8 конечно)
буква "ш" = chr(209).chr(63) / правильно chr(209).chr(136)
буква "И" = chr(208).chr(63) / правильно chr(208).chr(152)
Чтобы пофиксить делаем 2 запроса
*/
UPDATE `tbl` SET `pole` = REPLACE(
`pole`,
CONCAT( CHAR(209), CHAR(63) ),
CONCAT( CHAR(209), CHAR(136) )
);
UPDATE `tbl` SET `pole` = REPLACE(
`pole`,
CONCAT( CHAR(208), CHAR(63) ),
CONCAT( CHAR(208), CHAR(152) )
);
но тоже не прокатило. Возможно потому, что в базе прописало другие символы (в переменной они выглядят, как �?, а в базе просто два вопросительных знака). Пришла тут в голову идея заменить эти самые �? на "И" через preg_replace в самой переменной. Кто умеет составлять регулярки, откликнитесь, плз!
also добавил 02.04.2010 в 00:17
Все, вопрос решен, тему можно закрыть.