Overview

Namespaces

  • None
  • VSP
    • Core
      • Abstracts
      • Interfaces
      • Traits
        • WC_Compatibility
    • Deprecation
    • Helper
    • Modules
      • Addons
      • Logger

Classes

  • VSP\Ajax
  • VSP\Ajaxer
  • VSP\Base
  • VSP\Cache
  • VSP\Core\Abstracts\Addon
  • VSP\Core\Abstracts\Log_Handler
  • VSP\Core\Abstracts\Plugin_Settings
  • VSP\Core\Instance_Handler
  • VSP\Deprecation\Actions
  • VSP\Deprecation\Filters
  • VSP\Error
  • VSP\Framework
  • VSP\Framework_Admin
  • VSP\Framework_Base
  • VSP\Framework_Modules
  • VSP\Helper
  • VSP\Helper\Price_Calculation
  • VSP\Modules\Addons
  • VSP\Modules\Addons\Admin
  • VSP\Modules\Addons\Core
  • VSP\Modules\Logger
  • VSP\Modules\Logger\File_Handler
  • VSP\Modules\Logger\Levels
  • VSP\Modules\Shortcode
  • VSP\Modules\System_Logs
  • VSP\Modules\System_Tools
  • VSP\Modules\WPOnion
  • VSP\Setup
  • VSP\WC_Compatibility
  • VSP_Framework_Loader

Interfaces

  • VSP\Core\Interfaces\Log_Handler
  • VSP\Core\Interfaces\Logger

Traits

  • VSP\Core\Traits\Array_Helper
  • VSP\Core\Traits\Framework
  • VSP\Core\Traits\String_Helper
  • VSP\Core\Traits\URL
  • VSP\Core\Traits\WC_Compatibility\Product
  • VSP\Core\Traits\WC_Compatibility\Version
  • VSP\Core\Traits\WC_Helper
  • VSP\Core\Traits\WP

Functions

  • vsp_add_wc_required_notice
  • vsp_ajax_action
  • vsp_current_screen
  • vsp_date_format
  • vsp_delete_cache
  • vsp_doing_it_wrong
  • vsp_force_load
  • vsp_force_load_vendors
  • vsp_get_cache
  • vsp_get_cache_defaults
  • vsp_get_file_paths
  • vsp_get_logger
  • vsp_get_time_in_seconds
  • vsp_is_admin
  • vsp_is_ajax
  • vsp_is_cron
  • vsp_is_error
  • vsp_is_frontend
  • vsp_is_heartbeat
  • vsp_is_json
  • vsp_is_request
  • vsp_is_screen
  • vsp_json_last_error
  • vsp_list_files
  • vsp_list_log_files
  • vsp_load_core_assets
  • vsp_load_file
  • vsp_log_msg
  • vsp_logger
  • vsp_make_log_list_tree
  • vsp_maybe_load
  • vsp_placeholder_img
  • vsp_print_log_files_ui
  • vsp_register_assets
  • vsp_register_plugin
  • vsp_send_callback_error
  • vsp_send_callback_success
  • vsp_send_json_callback
  • vsp_set_cache
  • vsp_set_time_limit
  • vsp_slashit
  • vsp_time_format
  • vsp_unslashit
  • vsp_url
  • vsp_validate_required_plugin
  • Overview
  • Namespace
  • Class
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 
<?php

namespace VSP\Core\Traits;

defined( 'ABSPATH' ) || exit;

/**
 * Trait VSP_Framework_IP_Trait
 *
 * @author Varun Sridharan <varunsridharan23@gmail.com>
 */
trait URL {
    /**
     * Get first item segment.
     *
     * @param $segments
     *
     * @return string
     */
    public static function get_first_segment( $segments ) {
        $var = is_array( $segments ) ? $segments : self::segment_uri( $segments );
        return array_shift( $var );
    }

    /**
     * Get all URL parts based on a / seperator.
     *
     * @param null $uri
     *
     * @return array string → segments
     */
    public static function segment_uri( $uri = null ) {
        $uri = ( ! is_null( $uri ) ) ? $uri : $_SERVER['REQUEST_URI'];
        return explode( '/', trim( $uri, '/' ) );
    }

    /**
     * This function converts and URL segment to an safe one.
     * For example: `test name @132` will be converted to `test-name--123`.
     * It will also return all letters in lowercase
     *
     * @param string $slug → URL slug to clean up
     *
     * @return null|string|string[]
     */
    public static function generate_safe_slug( $slug ) {
        $slug = preg_replace( '/[^a-zA-Z0-9]/', '-', $slug );
        $slug = strtolower( trim( $slug, '-' ) );
        $slug = preg_replace( '/\-{2,}/', '-', $slug );
        return $slug;
    }

    /**
     * Converts plain text URLS into HTML links.
     * Second argument will be used as the URL label <a href=''>$custom</a>.
     *
     * @param string $url → URL
     * @param string $custom → if provided, this is used for the link label
     *
     * @return string → returns the data with links created around URLS
     */
    public static function auto_link( $url, $custom = null ) {
        $replace = ( null === $custom ) ? '<a href="http$2://$4">$1$2$3$4</a>' : '<a href="http$2://$4">' . $custom . '</a>';
        return preg_replace( '@(http)?(s)?(://)?(([-\w]+\.)+([^\s]+)+[^,.\s])@', $replace, $url );
    }

    /**
     * Get the server port.
     *
     * @return int → server port
     */
    public static function get_port() {
        return self::global_vars( 'SERVER_PORT' );
    }
}

API documentation generated by ApiGen