Если вы используете TortoiseGit, выполните следующие шаги:
TortoiseGit -> Settings
Git -> Remote
origin
URL
на место, где когда-либо был ваш новый удаленный репозиторий Ваша ветка и все ваши локальные коммиты останутся нетронутыми, и вы можете продолжать работать так, как раньше.
Это означает, что функция будет работать правильно, когда вы передадите ей произвольные двоичные данные (то есть строки, содержащие байты, отличные от ASCII, и / или нулевые байты).
Например, небезопасная функция может быть основана на функции C, которая ожидает строки с завершающим нулем, поэтому, если строка содержит нулевой символ, функция проигнорирует все, что находится после него.
Это актуально, потому что PHP не разделяет чисто строковые и двоичные данные.
Другие пользователи уже упоминали, что в целом означает бинарный сейф
.
В PHP значение более конкретное и относится только к тому, что Майкл приводит в качестве примера.
У всех строк в PHP есть связанная длина, которая представляет собой количество байтов, из которых они состоят. Когда функция манипулирует строкой, она может:
0
. Также верно, что все строковые переменные PHP, которыми манипулирует движок, также завершаются нулем. Проблема с функциями, которые полагаются на 2., заключается в том, что, если сама строка содержит байт со значением 0
, функция, которая управляет этим, будет думать, что строка закончилась в этой точке, и будет игнорировать все, что после этого .
Например, если бы функция PHP strlen
работала как стандартная библиотека C strlen
, результат здесь был бы неверным:
$str = "abc\x00abc";
echo strlen($str); //gives 7, not 3!