Пока Вы не пытаетесь поместить любые unicode данные в Ваш StringIO
, и Вы боитесь использовать cStringIO
, необходимо быть в порядке.
Согласно документация StringIO , пока Вы придерживаетесь или unicode или 8 битов, все работает как ожидалось. По-видимому, StringIO
делает что-то специальное, когда кто-то делает f.write(u"asdf")
(который ZipFile не делает к моему знанию). Так или иначе;
import zipfile
import StringIO
s = StringIO.StringIO()
z = zipfile.ZipFile(s, "w")
z.write("test.txt")
z.close()
f = file("x.zip", "w")
f.write(s.getvalue())
s.close()
f.close()
работы, столь же ожидаемые, и нет никакого различия между файлом в получающемся архиве и исходным файлом.
, Если Вы знаете об особом случае, где этот подход не работает, мне больше всего было бы интересно слышать об этом:)
3 - Это не имеет значения.
НО, я обычно использую
внутри
только для часть содержимого тега, т.е.
<a href="#">some <span class="red">text</span></a>
Вместо:
<a href="#"><span class="red">some text</span></a>
Что, очевидно, должно быть просто:
<a href="#" class="red">some text</a>
Это не имеет значения - они оба могут находиться внутри друг друга.
Вы можете проверить любую переменную для определенного класса:
if ($my_var instanceof classname)
однако в вашем случае это никогда не сработает, поскольку $ _GET ["valid_user"] исходит из запроса и никогда не будет быть объектом.
isUser (), вероятно, является настраиваемой функцией из библиотеки управления пользователями, которая аутентифицирует текущий сеанс. Вам нужно посмотреть, как это работает, если вы хотите его заменить.
вы всегда можете проверить это в W3C MarkUp Validation Service. Я пытался проверить:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
<p>
<a href="http://www.google.com/"><span>Google</span></a>
</p>
</body>
</html>
И то же самое, что и выше, но с
внутри < span>
т.е.
<span><a href="http://www.google.com">Google</a></span>
с типами документов HTML 4.01 и XHTML 1.0, и оба успешно прошли проверку!
Единственное, о чем нужно знать, - это убедиться, что вы закрываете теги в правильном порядке. Поэтому, если вы начинаете с
, а затем с
, убедитесь, что вы сначала закрыли тег
, прежде чем закрывать < span>
и наоборот.
Единственное, о чем нужно знать, - это убедиться, что вы закрываете теги в правильном порядке. Поэтому, если вы начинаете с
, а затем с
, убедитесь, что вы сначала закрыли тег
, прежде чем закрывать < span>
и наоборот.
Единственное, о чем нужно знать, - это убедиться, что вы закрываете теги в правильном порядке. Поэтому, если вы начинаете с
, а затем с
, убедитесь, что вы сначала закрыли тег
, прежде чем закрывать < span>
и наоборот.
Он будет работать и в том, и в другом случае, но лично я бы предпочел вариант 2, чтобы диапазон был «вокруг» ссылки.
Я считаю, что семантически имеет больше смысла, поскольку это контейнер для одного элемента, и если вам нужно вложить их, то это предполагает, что больше, чем элемент будет внутри внешнего.
Это зависит от того, для чего нужен диапазон. Если это относится к тексту ссылки, а не к факту, что это ссылка, выберите №1. Если диапазон относится к ссылке в целом, выберите №2. Если вы не объясните, что представляет собой диапазон, ответа не будет больше. Оба они являются встроенными элементами, могут быть синтаксически вложены в любом порядке.
SPAN - это GENERIC встроенный контейнер. Не имеет значения, находится ли a
внутри span
или span
находится внутри a
, поскольку оба являются встроенными элементами. Не стесняйтесь делать все, что кажется вам логически правильным.
a
внутри span
или span
находится внутри a
, поскольку оба являются встроенными элементами. Не стесняйтесь делать все, что кажется вам логически правильным. Не имеет значения, находится ли a
внутри span
или span
находится внутри a
, поскольку оба являются встроенными элементами. Не стесняйтесь делать все, что кажется вам логически правильным.