Это предупреждение может появляться с различными функциями, связанными с доступом к файлам и каталогам. Он предупреждает о проблеме с конфигурацией.
Когда он появляется, это означает, что доступ был запрещен для некоторых файлов.
Само предупреждение ничего не нарушает, но чаще всего скрипт не работает должным образом, если предотвращается доступ к файлу.
Исправление обычно изменяет конфигурацию PHP , связанная настройка называется open_basedir
.
Иногда неправильный имена файлов или каталогов, тогда исправление должно использовать правильные.
Вопросы, относящиеся
Очень простой способ сделать это при помощи регулярных выражений:
Regex.Match("User name (sales)", @"\(([^)]*)\)").Groups[1].Value
<час> Как ответ на (очень забавный) комментарий, вот тот же Regex с некоторым объяснением:
\( # Escaped parenthesis, means "starts with a '(' character"
( # Parentheses in a regex mean "put (capture) the stuff
# in between into the Groups array"
[^)] # Any character that is not a ')' character
* # Zero or more occurrences of the aforementioned "non ')' char"
) # Close the capturing group
\) # "Ends with a ')' character"
regex
метод выше, я думаю, но если Вы хотели использовать скромное substring
string input= "my name is (Jayne C)";
int start = input.IndexOf("(");
int stop = input.IndexOf(")");
string output = input.Substring(start+1, stop - start - 1);
или
string input = "my name is (Jayne C)";
string output = input.Substring(input.IndexOf("(") +1, input.IndexOf(")")- input.IndexOf("(")- 1);
Используйте регулярное выражение:
string test = "(test)";
string word = Regex.Match(test, @"\((\w+)\)").Groups[1].Value;
Console.WriteLine(word);
input.Remove(input.IndexOf(')')).Substring(input.IndexOf('(') + 1);
regex, возможно? Я думаю, что это работало бы...
\(([a-z]+?)\)
Регулярные выражения могли бы быть лучшим инструментом здесь. Если Вы не famililar с ними, я рекомендую установить Экспресс - большой небольшой regex инструмент.
Что-то как:
Regex regex = new Regex("\\((?<TextInsideBrackets>\\w+)\\)");
string incomingValue = "Username (sales)";
string insideBrackets = null;
Match match = regex.Match(incomingValue);
if(match.Success)
{
insideBrackets = match.Groups["TextInsideBrackets"].Value;
}
string input = "User name (sales)";
string output = input.Substring(input.IndexOf('(') + 1, input.IndexOf(')') - input.IndexOf('(') - 1);
Предположение, что у Вас только есть одна пара круглой скобки.
string s = "User name (sales)";
int start = s.IndexOf("(") + 1;
int end = s.IndexOf(")", start);
string result = s.Substring(start, end - start);