Главная Новые темы Список тем Задать вопрос Поиск  

Форум "Web-мастер" (архив)


Технологии web-програмирования


 #0 .craZy © 11.12.03 12:22:07 - 03.01.04 16:29:37

начал разгребаться с ПХП, посему буду мучить Вас "глупыми вопросами"...



ногами не бить! Цитата

 #1 .craZy © 11.12.03 12:25:41

вопрос №1


$border = 1;
echo'<table border=$border>';


внутри хтмл-тэга "подстановка" не работает... :(
как бороться?
 #2 VictorT © 11.12.03 12:34:18

Странно, должно работать так... Хотя, мож от настроек PHP зависит... но я всегда пишу так (и понятнее, и быстрее работатет):

$border = 1;
echo "<table border=" .$border. ">";
 #3 Kortez © 11.12.03 12:38:02

пиши print.
 #4 .craZy © 11.12.03 12:45:26

вопрос №2

объясните разницу между:

echo'<img src="some_path" ... >';

и image* - функциями (resource imagecreate (int x_size, int y_size) etc.);

или принципиальной разницы нет?
 #5 .craZy © 11.12.03 12:49:43

> VictorT © 11.12.03 13:34
"слона-то я и не заметил..." (с)
точно! спасиб!
 #6 Kortez © 11.12.03 12:53:36

> echo'<img src="some_path" ... >';

Это ты делаешь, когда выдаешь контент в виде текста (plain/html или как там его)

> и image* - функциями (resource imagecreate (int x_size,
> int y_size) etc.);


Этим не пользовался, но скорее всего оно выдает в итоге на выход собственно картинку.
 #7 .craZy © 11.12.03 13:11:48

> Kortez © 11.12.03 13:53
т.е. в первом вариане я вывожу уже готовую картинку из файла, а во втором - сначала "генерю картинку руками" (посредствам image-фкуций), а потом уже выкладываю ее? я правильно понял?
 #8 Kortez © 11.12.03 13:19:42

> в первом вариане я вывожу уже готовую картинку из файла

Нет, ты выдаешь просто текст, в котором есть ссылка на картинку и загружает ее уже браузер.

> а потом уже выкладываю ее? я правильно понял?

На выходе скрипта - только сама картинка, о чем должен сказать header. Точно не помню, кажется что-то типа "image/jpeg" Это есть в PHP.Manual

На ходил?
 #9 Deep © 11.12.03 13:24:15

иногда уместен такой вид оформления

<?php
$border = 1;
//много пхп кода
?>


<table border=<?=$border?>&­gt;
//много html кода
 #10 Kortez © 11.12.03 13:29:17

> <table border=<?=$border?>>

Да, так удобнее всего. Ненавязчивый PHP среди HTML  
 #11 Deep © 11.12.03 13:37:30

> Kortez © 11.12.2003 14:29:00
> Да, так удобнее всего.

это еще удобнее потому, что так лучше вопринимается подсветка синтаксиса (как PHP операторов, так и HTML тегов)
 

в конструкции
> echo "<table border=" .$border. ">";
HTML теги подсвечиваться не будут, потому как они будут считаться строковой константой.
 #12 .craZy © 11.12.03 13:41:59

> На ходил?
еще один любитель порастопыривать пальцы?
или я вопросы задавать не умею?
странно...

ладно, попробую иначе...
ЗАДАЧА: получить в окне боузера картинку с изображением жёлтого круга на синем фоне.  

ВАРИАНТЫ:
1) echo'<img src="путь_к_картинке_с_изображение­м_жёлтого...">';
2) рисуем картинку "руками":
$im = imagecreate(...);
...
$error = imagejpeg($im);


ВОПРОС: возможно ли выполнение задачи средствами (1) и (2), если да - какой из вариантов эффективнее (в плане - меньше байт приходится "передавать" клиенту(броузеру))?






 #13 VictorT © 11.12.03 13:43:55

тут неплохой мануал на русском:
 #14 VictorT © 11.12.03 13:48:50

> ВОПРОС: возможно ли выполнение задачи средствами (1) и (2),
> если да - какой из вариантов эффективнее (в плане - меньше
> байт приходится "передавать" клиенту(броузеру))?

Возможны оба варианта. А трафик зависит не от способа, а от полученного размера картинки. Да, кстати, чтоб работал второй вариант, нужно чтоб на хостинге была подключена GD библиотека, что бывает не так уж часто. И вообще, второй способ есть смысл использовать, когда заранее неизвестно, какой должна быть картинка, к примеру, какой-нить график, построенный на основании каких-то полученных данных.
 #15 .craZy © 11.12.03 13:49:43

ребята! линки на мануалы мне не нужны!!!
я оными уже затарился! здесь (в этой ветке), мне хотелось бы получать конкретные ответы (см. >>> VictorT © 11.12.03 13:34 ) на конкретные(ну, не всегда конечно) вопросы. если я слишком много хочу - так и скажите, просто закроем эту ветку.
 #16 .craZy © 11.12.03 13:55:49

> VictorT © 11.12.03 14:48
угу... понял.
10х!
 #17 VictorT © 11.12.03 13:57:05

> ребята! линки на мануалы мне не нужны!!!
Ну, я дал линк на мануал, которым сам постоянно пользуюсь, имхо, лучший, из тех, что я видел на русском языке. В мануалах ведь тоже заблудится можно, какой плохой, какой хороший. Это не было посылательство на RTFM, на вопросы отвечать буду.
 #18 Deep © 11.12.03 14:01:14

> .craZy © 11.12.2003 14:49:00
> я оными уже затарился!

я тож затарился разными доками, а до "читать" дело так и не дошло -- времени не хватает.   Потому форум и эффективнее. В двух случаях: в "начале" и в "дебрях".
 #19 .craZy © 11.12.03 14:03:14

> А трафик зависит не от способа, а от полученного размера
> картинки

хотя... мне вот подумалось...
смотри:
echo'<img src=...>';
броузеру передаётся: sizeof(<img>) + sizeof(picture);
а во втором? только sizeof(picture)?
 #20 .craZy © 11.12.03 14:07:46

> VictorT © 11.12.03 14:57
ок, сенкс, буду иметь ввиду.

> Deep © 11.12.03 15:01
100%
 #21 VictorT © 11.12.03 14:12:04

второй случай - выдается непосредственно сама картинка, никакого html... т.е. у тебя к примеру в скрипте image.php генерится картинка, а чтоб вставить её в страницу, делается так:
<img src=image.php ...
 #22 .craZy © 11.12.03 14:19:08

> VictorT © 11.12.03 15:12
а если так?
include_once'image.php';
экономней? я ж могу include_once/include использовать в любом месте кода?
например:

<td> <?php include_once'image.php';?> </td>
 #23 VictorT © 11.12.03 14:25:26

> я ж могу include_once/include использовать в любом месте
> кода?

Да, в любом.
> <td> <?php include_once'image.php';?> </td>
Так не проканает, нужно средствами html указать, что там картинка. А инклуд просто втавит туда скрипт, а скрит выдаст содержимое кортинки, т.е. просто набор байтов, который броузер будет пытаться интерпретировать, как html-код (естественно у него это плохо получится).
 #24 .craZy © 11.12.03 14:47:21

> VictorT © 11.12.03 15:25
хм...
из доки:
Отправляя image/jpeg content-type с помощью header(), вы можете создать PHP0-скрипт, который выводит JPEG-изображения напрямую.
_____________
я ж могу в image.php непосредственно перед выводом картинки заюзать header(), а потом вставлять image.php инклудом?

ЗЫ: не достал еще?
 #25 VictorT © 11.12.03 15:12:25

> Отправляя image/jpeg content-type с помощью header(), вы
> можете создать PHP0-скрипт, который выводит JPEG-изображения
> напрямую.

Правильно, т.е. результат работы скрипта такой-же, как если б это была просто готовая картинка (image.gif назовём для примера).

т.е. инклуд будет аналогичен такому: include("image.gif");
Т.е. в текст странички просто добавляются байты из картинки.
 #26 VictorT © 11.12.03 15:15:41

З.Ы. инклуд просто вставляет в то место, где он находится, содержимое файла, как если бы вместо инклуада стояло непосредственно это содержимое.
 #27 .craZy © 11.12.03 15:35:26

> VictorT © 11.12.03 16:15
яшно...
блин, какой-то негибкий инклуд :( сделали б возможность форматированого вывода, имхо, было бы удобней...
 #28 VictorT © 11.12.03 15:38:14

> блин, какой-то негибкий инклуд :(
инклуд, как инклуд, такой же самый, как в Си...
> сделали б возможность форматированого вывода, имхо, было
> бы удобней...

Т.е.?
 #29 McSimm 1 11.12.03 18:56:33

> вопрос №1
> $border = 1;
> echo'<table border=$border>';
> внутри хтмл-тэга "подстановка" не работает... :(


Использование двойной кавычки для строковых литералов приводит к подстановкам. Строки в одинарных кавычках выводятся как есть.

> вопрос №2
> объясните разницу между:
> echo'<img src="some_path" ... >';
> и image* - функциями (resource imagecreate (int x_size,
> int y_size) etc.);
> или принципиальной разницы нет?


Это совершенно разные вещи.
В HTML нельзя вставлять картинки. Это текстовый документ. В нем возможно вставить Тэг <IMG>, который укажет броузеру, что в этом месте предполагается изображение, броузер рассмотрит этот тег и его атрибуты и запросит уже само изображение, расположенное по адресу, указанному в атрибуте src=
А уже само изображение можно передать разными путями. Либо указать в src=img1.gif адрес графического файла, в этом случае веб сервер просто читает файл и возвращает броузеру, либо адрес скрипта src=createimg.php, выполнение которого приведет к формированию изображения, которое сервер вернет броузеру.
 #30 .craZy © 12.12.03 18:57:19

> McSimm 1 11.12.03 19:56
Спасибо! Прояснил картину...

ВОПРОС №3

$some_data = fscanf($FD, "%s
");

%s: что-то я не пойму до какого разделителя идёт считывание данных? Пробел в данном случае является разделителем?
Ститываю из файла строку из двух слов, а он их, зараза, возвращает в виде массива из двух строк... а хотелось бы получать одну строку. Мне что их потом "руками" склеивать? Варианты есть?
 #31 .craZy © 12.12.03 19:20:26

блин...

$some_data = fscanf( $FD, "%s
");

 #32 .craZy © 12.12.03 19:25:36

м-да... видать слэшу не судьба нарисоваться... :(
вобщем после %s там еще слэш_N (newline)
 #33 McSimm © 15.12.03 10:36:37

Если нужно получать одну строку из файла просто как одну строку, то зачем эти сложности?

А вообще, вместо %s лучше использовать что-то вроде %[a-zA-Z0-9,. ]
 #34  Некромант © 19.12.03 21:33:50

.craZy © 11.12.03 14:49
затрь тогда и меня линками. оки?
 #35 .craZy © 24.12.03 13:30:22

> Некромант © 19.12.03 22:33
ого... думаешь я помню откуда доки лил?
я делал так: сёрфил по пхп-ышнм страничкам и сливал все доки которые находил. Потом разгрёб всё это дело, оставил парочку, на мой взгляд, самых полных, остальные убил...


ВОПРОС №4

работа со строками.
$message = "some text";

4.1. могу я с $message работать как с масивом чаров (как в сях)? т.е. -> $message[i]...

4.2. допустим мне нада после 5-ого символа строки $message вставить "<br>"...
тобишь чтоб $message == "some <br>text"
в php есть "умные" функции для работы со строками?
или свою писать нада?
поделитесь алгоритмами как это удобней всего сделать?
 #36 VictorT © 24.12.03 13:48:47

4.1. можно, но учти это:

Доступ к символу в строке
Можно получить доступ к символам в строке путём специфицирования смещения с базой 0 в фигурных скобках для нужного символа.

Примечание: для обеспечения обратной совместимости вы можете по-прежнему использовать скобки массива. Однако этот синтаксис не рекомендуется, начиная с PHP 4.

4.2. Я обычно делаю типа такого
$message = "some text";
$message = substr($message, 0, 5). "<br>" .substr($message, 5);

"ОЧЕНЬ УМНЫЕ" строковые функции - это регэкспы, но я их пока сам с трудом пониамаю:
Функции попроще, "просто умные":
 #37 .craZy © 24.12.03 15:31:58

>
>
> VictorT © 24.12.03 14:48

10x!
 #38  Некромант © 24.12.03 21:26:15

у мя инет не такой.. долго и много не посливаешь... ;(
 #39 VictorT © 25.12.03 10:28:07

> Некромант © 24.12.03 22:26:15
Я пользуюсь практически исключительно этим:

И редко приходится ещё куда нить-заглядывать... разве что какие-то случайные находки, нестандартные приёмы, которые целенаправленно не очень то и найдёшь... все найденные фичи стараюсь выкладывать на этом форуме, для себя же полезно, т.к. получается своего рода база с разными приёмами, учитывая, что пользуюсь клиентом, получается, что всё есть локально на компе... т.е. на самом деле, когда я выкладываю что-то в веб-мастере, я при этом не только несу знание другим, но и сохраняю его для себя...
 #40 Лёля 25.12.03 11:51:50

Привет!Можно к тебе за помощью обратиться?
 #41 .craZy © 26.12.03 15:57:15

не нашёл mod (остаток от деления (паскалевский вариант))... он ваще есть в пхп?
 #42 McSimm © 26.12.03 16:25:44

> не нашёл mod
$a % $b
 #43 .craZy © 26.12.03 20:08:19

> McSimm © 26.12.03 17:25
погоди...


из доки:
$a % $b  = Целочисленный остаток от деления $a на $b.

вот что значит доки по ночам читать... проглючило меня что это div а не mod

10х!
 #44 Immitator © 28.12.03 17:22:48

а вопросов таки накопилось у тебя  неплохое пособие выйдет для тех кто начнет пхп изучать
 #45 .craZy © 03.01.04 16:29:37

> Immitator © 28.12.03 18:22
:) чем плохо?




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов