예제 #1
0
        /// <summary>
        /// Extracts part(s) from a specified path.
        /// </summary>
        /// <param name="path">The path to be parsed.</param>
        /// <param name="options">Flags determining the result.</param>
        /// <returns>
        /// If <paramref name="options"/> is <see cref="PathInfoOptions.All"/> then returns array
        /// keyed by <c>"dirname"</c>, <c>"basename"</c>, and <c>"extension"</c>. Otherwise,
        /// it returns string value containing a single part of the path.
        /// </returns>
        public static PhpValue pathinfo(string path, PathInfoOptions options = PathInfoOptions.All)
        {
            // collect strings
            string dirname = null, basename = null, extension = null, filename = null;

            if ((options & PathInfoOptions.BaseName) != 0 ||
                (options & PathInfoOptions.Extension) != 0 ||
                (options & PathInfoOptions.FileName) != 0)
            {
                basename = PhpPath.basename(path);
            }

            if ((options & PathInfoOptions.DirName) != 0)
            {
                dirname = PhpPath.dirname(path);
            }

            if ((options & PathInfoOptions.Extension) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                {
                    extension = basename.Substring(last_dot + 1);
                }
            }

            if ((options & PathInfoOptions.FileName) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                {
                    filename = basename.Substring(0, last_dot);
                }
                else
                {
                    filename = basename;
                }
            }

            // return requested value or all of them in an associative array
            if (options == PathInfoOptions.All)
            {
                var result = new PhpArray(4);
                result.Add("dirname", dirname);
                result.Add("basename", basename);
                result.Add("extension", extension);
                result.Add("filename", filename);
                return(PhpValue.Create(result));
            }

            if ((options & PathInfoOptions.DirName) != 0)
            {
                return(PhpValue.Create(dirname));
            }

            if ((options & PathInfoOptions.BaseName) != 0)
            {
                return(PhpValue.Create(basename));
            }

            if ((options & PathInfoOptions.Extension) != 0)
            {
                return(PhpValue.Create(extension));
            }

            if ((options & PathInfoOptions.FileName) != 0)
            {
                return(PhpValue.Create(filename));
            }

            return(PhpValue.Null);
        }
예제 #2
0
        public static PathInfoResult PathInfo(string path, PathInfoOptions options)
        {
#warning 'Implementacja możliwa';
            return(new PathInfoResult());
        }
예제 #3
0
        public static object GetInfo(string path, PathInfoOptions options)
        {
            // collect strings
            string dirname = null, basename = null, extension = null, filename = null;

            if ((options & PathInfoOptions.BaseName) != 0 ||
                (options & PathInfoOptions.Extension) != 0 ||
                (options & PathInfoOptions.FileName) != 0)
            {
                basename = GetBase(path);
            }

            if ((options & PathInfoOptions.DirName) != 0)
            {
                dirname = GetDirectory(path);
            }

            if ((options & PathInfoOptions.Extension) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                {
                    extension = basename.Substring(last_dot + 1);
                }
            }

            if ((options & PathInfoOptions.FileName) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                {
                    filename = basename.Substring(0, last_dot);
                }
                else
                {
                    filename = basename;
                }
            }

            // return requested value or all of them in an associative array
            if (options == PathInfoOptions.All)
            {
                PhpArray result = new PhpArray(0, 4);
                result.Add("dirname", dirname);
                result.Add("basename", basename);
                result.Add("extension", extension);
                result.Add("filename", filename);
                return(result);
            }

            if ((options & PathInfoOptions.DirName) != 0)
            {
                return(dirname);
            }

            if ((options & PathInfoOptions.BaseName) != 0)
            {
                return(basename);
            }

            if ((options & PathInfoOptions.Extension) != 0)
            {
                return(extension);
            }

            if ((options & PathInfoOptions.FileName) != 0)
            {
                return(filename);
            }

            return(null);
        }
예제 #4
0
        public static PathInfoResult PathInfo(string path, PathInfoOptions options)
        {
#warning 'Implementacja możliwa';
            return new PathInfoResult();
        }
예제 #5
0
        /// <summary>
        /// Extracts part(s) from a specified path.
        /// </summary>
        /// <param name="path">The path to be parsed.</param>
        /// <param name="options">Flags determining the result.</param>
        /// <returns>
        /// If <paramref name="options"/> is <see cref="PathInfoOptions.All"/> then returns array
        /// keyed by <c>"dirname"</c>, <c>"basename"</c>, and <c>"extension"</c>. Otherwise,
        /// it returns string value containing a single part of the path.
        /// </returns>
        public static PhpValue pathinfo(string path, PathInfoOptions options = PathInfoOptions.All)
        {
            // collect strings
            string dirname = null, basename = null, extension = null, filename = null;

            if ((options & PathInfoOptions.BaseName) != 0 ||
                (options & PathInfoOptions.Extension) != 0 ||
                (options & PathInfoOptions.FileName) != 0)
                basename = PhpPath.basename(path);

            if ((options & PathInfoOptions.DirName) != 0)
                dirname = PhpPath.dirname(path);

            if ((options & PathInfoOptions.Extension) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                    extension = basename.Substring(last_dot + 1);
            }

            if ((options & PathInfoOptions.FileName) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                    filename = basename.Substring(0, last_dot);
                else
                    filename = basename;
            }

            // return requested value or all of them in an associative array
            if (options == PathInfoOptions.All)
            {
                PhpArray result = new PhpArray(0, 4);
                result.Add("dirname", dirname);
                result.Add("basename", basename);
                result.Add("extension", extension);
                result.Add("filename", filename);
                return PhpValue.Create(result);
            }

            if ((options & PathInfoOptions.DirName) != 0)
                return PhpValue.Create(dirname);

            if ((options & PathInfoOptions.BaseName) != 0)
                return PhpValue.Create(basename);

            if ((options & PathInfoOptions.Extension) != 0)
                return PhpValue.Create(extension);

            if ((options & PathInfoOptions.FileName) != 0)
                return PhpValue.Create(filename);

            return PhpValue.Null;
        }
예제 #6
0
        public static object GetInfo(string path, PathInfoOptions options)
		{
            // collect strings
			string dirname = null, basename = null, extension = null, filename = null;

			if ((options & PathInfoOptions.BaseName) != 0 ||
                (options & PathInfoOptions.Extension) != 0 ||
                (options & PathInfoOptions.FileName) != 0 )
				basename = GetBase(path);

			if ((options & PathInfoOptions.DirName) != 0)
				dirname = GetDirectory(path);

			if ((options & PathInfoOptions.Extension) != 0)
			{
				int last_dot = basename.LastIndexOf('.');
				if (last_dot >= 0)
					extension = basename.Substring(last_dot + 1);
			}

            if ((options & PathInfoOptions.FileName) != 0)
            {
                int last_dot = basename.LastIndexOf('.');
                if (last_dot >= 0)
                    filename = basename.Substring(0, last_dot);
                else
                    filename = basename;
            }

            // return requested value or all of them in an associative array
			if (options == PathInfoOptions.All)
			{
				PhpArray result = new PhpArray(0, 4);
				result.Add("dirname", dirname);
				result.Add("basename", basename);
				result.Add("extension", extension);
                result.Add("filename", filename);
				return result;
			}

			if ((options & PathInfoOptions.DirName) != 0)
				return dirname;

			if ((options & PathInfoOptions.BaseName) != 0)
				return basename;

			if ((options & PathInfoOptions.Extension) != 0)
				return extension;

            if ((options & PathInfoOptions.FileName) != 0)
                return filename;

			return null;
		}