|
|
|
| Причтении строки из файла пробел между словами заменяется на %. Причем если в файле строка записана по английски, то этого не происходит.
как сделать так чтобы строка читалась нормально.
Ну т.е. у меня так: записываю в файл строчку Привет всем.
Потом достаю из файла эту строчку, называю ее переменной, делаю из нее ссылку, а в ссылке вижу
.../Привет%20всем.
и конечно по ссылке не идет.
хелп плз. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 18:28)
| | в ссылках как раз таки не может быть прямых пробелов.
Равно как, впрочем и русских букв.
Не идет пожалуй именно из-за русских букв. А вовсе не из-за пробелов.
Применяйте urlencode() / rawurlencode() | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 18:30)
| | а вы не подскажете как ее правильно использовать, а то я пишу
echo "<a href='urlencode($file)'>...</a>";
а ссылка не работает, в ней пишет urlencode($file),
где переменная подменяется соответствующим значением. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 18:39)
| | >echo "<a href='urlencode($file)'>...</a>";
<?
echo "<a href='".urlencode($file)."'>...</a>";
|
| |
|
|
|
|
|
|
|
для: KPETuH
(10.12.2007 в 18:46)
| | все прекрасно, только он мой пробел заменяет на плюс и по ссылке не идет конечно же.
почему?? | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 18:54)
| | Просто дело в том, что я создаю папку Мои фото, записываю имя этой папки в некоторой файл.
потом это имя (Мои фото) считывается из файла, записывается в переменную и делается ссылкой.
Но т.к. там получается Мои+фото.Он этой папки не находит.(( | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 18:56)
| | Надо URL-кодировать не весь URL (URI), а только значения параметров (ну и нестандартные имена в путях).
Например,
<?php
echo "http://example.com/?var=" . urlencode("значение"), " ", "http://example.com/" . urlencode("папка");
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(10.12.2007 в 18:59)
| | Спасибо, у меня работает.
У меня еще возник вопрос. У меня в какой то там папке лежит файл с картинкой, записанный как переменная $img.
Возможно с помощью какой-либо функции узнать его абсолютный путь?
И если возможно то как его правильно вывести на экран.
Я вывожу строкой
"<img src=\"realpath($img)\" border=0>";
у меня не работает.
realpath() предположительно функция пути.
я что-то ен правильно пишу? | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 21:31)
| | в атрибуте src языка HTML Вы должны записывать так называемый URI - универсальный идентификатор ресурса (или его сокращение), а не полный путь к файлу в иерархии файловой системы сервера.
К примеру, URI может быть такой
http://softtime.ru/skins/extend/images/enterforum.gif
|
А realpath будет (не факт, но гипотетически запросто) такой
/home/softtime/htdocs/skins/extended/images/enterforum.gif
|
или даже такой:
D:\inetpub\wwwroot\skins\extended\images\enterforum.gif
|
| |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 21:39)
| | А как получить URI? | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 21:55)
| | собрать руками из $_SERVER['HTTP_HOST'] , части $_SERVER['PHP_SELF'] и относительного пути.
Хотя обычно он полный не нужен. Обычно можно обойтись относительным путем. Зачем Вам полный? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 21:59)
| | Понимаете я пишу вот такую штуку:
chdir("./$cat");
$dir_img = opendir(".");
while($img = readdir($dir_img))
{
if($img!="." && $img!=".." && $img!="dir.txt")
{
echo "$img<br>";
$imgsize=getimagesize($img);
echo "<img src=\"./$cat/$img\" border=0>";
//echo "<img src=\"realpath($img)\" border=0>";
echo "$imgsize[0]*$imgsize[1]<br>";
}
}
closedir($dir_img);
и у меня не выводиться картинка.
я уже замучалась, не знаю где ошибка.
получается либо он не понимает что в этой директории находится такой файл либо директорию он не записывает в путь либо что.
Прописываю полность путь, показывает картинку, но мне так не надо. мне нужна еще потом эта картинка как переменная, чтобы ее уменьшить. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 22:06)
| | Запустив скрипт, откройте в браузере исх. текст html-кода , посмотрите (и процитируйте), как выглядит форма и тег в ней.
Заодно сообщите, как выглядит в браузере полный адрес страницы со скриптом, начиная с http: | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 22:08)
| | вот: <img src="./Папка/Копия+IMG_0105.jpg" border=0>
так выглядит путь к картинке.
а формы у меня нет. переменная $cat получается берется из
<a href=\"index.php?cat=".urlencode($file)."\"> так,
а потом вот так $_GET['cat'].
Наверно я вас немного запутал. но я тоже не очень поняла что нужно.
Вот полный путь к скрипту, если $cat выбрана.
http://www.myfolder/Fotogallery/index.php?cat=%CD%E0+%EF%F3%F2%E8+%EA+%E2%FB%E7%E4%EE%F0%EE%E2%EB%E5%ED%E8%FE
а если не выбрана, то соответственно
http://www.myfolder/Fotogallery/index.php | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 22:16)
| | Хорошо. А как выглядит путь к картинке, если Вы открываете её в браузере руками? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 22:20)
| | Z:\home\myfolder\www\FotoGallery\Мои фото
ну допустим так.
Вы это имели ввиду? | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 22:29)
| | нет. не в windows explorer а в браузере.
я имел в виду что-то вроде
http://www.myfolder/FotoGallery ...... 015.JPG
Вот этот путь полностью приведите, пожалуйста.
Между прочим, называя имена и каталоги именами, содержащими символы национальных алфавитов, Вы навлекаете на себя целый вагон сложностей. Без них (без русских букв в адресе) никак нельзя обойтись? | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 22:35)
| | Ну понимаете у меня же он так не пишет, у меня на страничку должны выводиться несколько изображений, находящихся в папке.
Я тут пытаюсь картику как то отобразить, но у меня не получается. Как же посмотрю путь в браузере? | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 22:44)
| | попробуйте написать в скрипте
echo "$img<br>";
$imgsize=getimagesize($img);
echo "<img src=\"". urlencode($cat)."/".urlencode($img)."\" border=0>";
|
| |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 22:56)
| | могу сказать точно: чуда не произошло.
ну что же здесь не так. почему путь то он не понимает.
я делала такой же код, только там картинки содержались не в ./$cat, а непосредственно в ".".
Все хорошо работало.
почему здесь нет??!!! | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 22:35)
| | ну я делаю галерею. пользователь сам пишет имя каталога, в котором бы он хотел разместить какие то фото. он же может по разному писать. да и когда по русски пишется красиво.
а здесь по мойму дело уже не алфавите, если я обрабатываю папку с англ именнем все аналогично.
он не выводит фото из каталога | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 22:49)
| | Вы просто не хотите отвечать на вопросы.
Я Вас спрашиваю, как адрес выглядит, выпишете Папка, в то время как из запуска скрипта ясно следует что папка вовсе не папка а На пути к выздоровлению.
Если по Вашему дело не в алфавите - разбирайтесь сами.
PS. Несколько изображений скопом, не научившись предварительно показывать их по-одиночке, Вы не выведете на экран никогда.
PPS
>пользователь сам пишет имя каталога, в котором бы он хотел разместить какие то фото. он же может по разному писать. да и когда по русски пишется красиво.
Да . Пользователь пишет. Да. Красиво.
Но ни один скрипт не хранит файлы физически в тех же именах и в так же именованных папках, и никогда их оттуда не показывает. Пользовательские имена хранятся совершенно отдельно от файловых.
И папки и фотографии получают номера, как правило. И на 95% из-за того, что национальные символы в именах ресурсов обходятся исключительно дорогой ценой.
Dixi. | |
|
|
|
|
|
|
|
для: Trianon
(10.12.2007 в 23:00)
| | Ну я образно.
А что название важно?
И во всех галереях, которые я смотрела все похоже делается. | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 23:05)
| | как вариант сделать такие имена папок
http://site.ru/imgs/%CD%E0+%EF%F3%F2%E8/kartinka.jpg
всмысле такой будет путь фактически , а для читаемости декодировать при выводе в браузере.
windows так и делает мне кажется, только когда в адресной строке пробелы их браузер преобразует в %20 , а не в +
такое сделает rawurlencode();
всмысле корректнее будет имя папки %CD%E0%20%EF%F3%F2%E8 , и можно будет попробовать в адресной строке набрать просто http://site.ru/imgs/На пути/kartinka.jpg
// хотя нет :)
русские буквы так и остались в адресной строке :)) | |
|
|
|
|
|
|
|
для: Полина
(10.12.2007 в 23:05)
| | Название важно. Интересно, где Вы видели в адресной строке русские символы... И пробелы.
Пользователь может вводить имя создаваемой директории русскими буквами. А в скрипте лучше сделать перекодировку русских символов в латиницу. Думается, никакой разницы, будет называться папка "мои_фото" или "moi_foto". Если интересует, могу привести здесь пример простенькой функции транслитерования.
Избавьтесь Вы от кириллицы - проще будет. | |
|
|
|
|
|
|
|
для: steiger
(11.12.2007 в 09:50)
| | я уже поняла, что из-за русских названий не работало.
Если вам не сложно покажите пример пожалуйста.
И у меня возникает еще одна проблема. Все картинки которые я читаю из созданной пользователем папки должны перед выводом быть обработаны файлом, который их будет сжимать. Но он находиться в основном каталоге, а не в этой папке и картинок не распознает.
Т.е. вот:
{
chdir("./$cat");
$dir_img = opendir(".");
while($img = readdir($dir_img))
{
if($img!="." && $img!=".." && $img!="dir.txt")
{
echo "$img<br>";
$imgsize=getimagesize($img);
include "small.php";
echo "<img src=\"". urlencode($cat)."/".urlencode($img)."\" border=0>";
echo "$imgsize[0]*$imgsize[1]<br>";
}
}
closedir($dir_img);
}
где small.php
$wc=150;
$Oldimg=imagecreatefromjpeg($img);
$w=imagesx($Oldimg);
$h=imagesy($Oldimg);
header("Content-type: image/jpeg");
$ratio=$w/$wc;
$w1=$w/$ratio;;
$h1=$h/$ratio;
$Newimg=imagecreatetruecolor($w1,$h1);
imagecopyresampled($Newimg,$Oldimg,0,0,0,0,$w1,$h1,$w,$h);
imagejpeg($Newimg,"",100);
imgdestroy($Newimg);
imgdestroy($Oldimg);
Если писать код где выбираем не каталог $cat а основную директорию. он у меня работает
а так почему то нет.
я не понимаю как к нему путь написать.
я include сначала заменяла строчкой
echo "<a href=\"". urlencode($cat)."/".urlencode($img)."\" target=_blank><img src="\small.php?img=$img\" border=0><br></a>";
но ничего нет. ссылки работают,а картинки не тоображаются.
я думаю что эта строчка правильней , чем инклюд. | |
|
|
|
|
|
|
|
для: Полина
(11.12.2007 в 20:27)
| |
" ... <img src=\"small.php?img=".urlencode($img)."\" border=0 > ... "
|
| |
|
|
|
|
|
|
|
для: Trianon
(11.12.2007 в 20:29)
| | нет, так к сожалению не получается.
у меня теперь папки все английские, названия картинок - цифрами английскими без пробелов.
предыдущей строчкой полное изображение выводится , а следующей я пытаюсь уменьшить,
вместо этого получаю квадратик без картинки, на него нажимаю, он по ссылке переходит и изображение показывает нормально.
вообщем все работает, только почему то не сжимается. | |
|
|
|
|
|
|
|
для: Полина
(11.12.2007 в 20:27)
| | > $Oldimg=imagecreatefromjpeg($img);
Помоему проблема в это строке, передавайте туда имя файла вместе с именем папки в каторой он находится....
<?
$Oldimag==imagecreatefromjpeg("./".$cat."/".$img);
|
за код не ручаюсь так как не вдавался в подробности вашего скрипта, но суда по симптомам описанными вами проблема в этом... | |
|
|
|
|
|
|
|
для: KPETuH
(12.12.2007 в 08:05)
| | ну вообщем нет, не заработало. а он понимает, что такое img?. Файл small.php я привела полностью. Там нет img, толлко переменная $img. Может быть нужно както передавать туда? Например GETом. Только не соображу как это сделать. | |
|
|
|
|
|
|
|
для: Полина
(12.12.2007 в 10:08)
| | скажите а small.php должен сжимать сам файл или выводить уменьшенное превью?
для 2:
<?php
$cat='image';
$dir_img = opendir("./$cat");
while($img = readdir($dir_img))
{
if($img!="." && $img!=".." && $img!="dir.txt")
{
echo $path=$cat."/".$img;
$imgsize=getimagesize($path);
echo "<img src=\"small.php?file=$path\" border=0><br>";
echo "$imgsize[0]*$imgsize[1]<br>";
}
}
closedir($dir_img);
?>
|
и small.php
<?php
$wc=150;
$Oldimg=imagecreatefromjpeg($_GET['file']);
$w=imagesx($Oldimg);
$h=imagesy($Oldimg);
header("Content-type: image/jpeg");
$ratio=$w/$wc;
$w1=$w/$ratio;;
$h1=$h/$ratio;
$Newimg=imagecreatetruecolor($w1,$h1);
imagecopyresized($Newimg,$Oldimg,0,0,0,0,$w1,$h1,$w,$h);
imagejpeg($Newimg);
imagedestroy($Newimg);
imagedestroy($Oldimg);
?>
|
скрипты лежат в корне а картинки в папке название которой определяется переменной $cat | |
|
|
|
|
|
|
|
для: KPETuH
(12.12.2007 в 13:05)
| | нет, сжимать файл не должен, мне нужно выводить уменьшенное изображение. я пишу файловую фотогалерею.
Спасибо большое, сейчас попробую так как у вас показано. сделать. | |
|
|
|
|
|
|
|
для: KPETuH
(12.12.2007 в 13:05)
| | У меня работает!!!!
Молодой человек, Вы даже не представляете как я вам благодарна. Спасибо Вам большое. | |
|
|
|