Support » Plugin: Broken Link Checker – Find and Fix Dead Links » PHP 7.2 Issue with create_function

  • Resolved Matt

    (@syntax53)


    PHP Deprecated: Function create_function() is deprecated in broken-link-checker\modules\checkers\http.php on line 147

Viewing 4 replies - 1 through 4 (of 4 total)
  • moody1337

    (@moody1337)

    Just change the whole function to:

    function urlencodefix($url){
    	//TODO: Remove/fix this. Probably not a good idea to "fix" invalid URLs like that.
    	return preg_replace_callback(
    		'|[^a-z0-9\+\-\/\\#:.,;=?!&%@()$\|*~_]|i',
    		function ($str) {
    			return rawurlencode($str[0]);
    		},
    		$url);
    }

    Good catch @syntax53 & @moody1337. Here is the current situation:

    I have put together all the patches around on Github I could find via the network analysis, including PHP7 fixes and transaction fixes (a lot of this was gathered by other developers, see the last link on the post for info). The plugin has not been maintained by what is now a unit of GoDaddy since about Q3 2017.

    The Head of the patched Broken Link Checker github repo can be downloaded here if you want to try it:
    https://github.com/HongPong/broken-link-checker/archive/master.zip
    Repo URL:
    https://github.com/HongPong/broken-link-checker

    Please take a look at the issues I wrote up which illustrates good ideas that can be applied to this plugin:
    https://github.com/HongPong/broken-link-checker/issues

    Note this repo URL is subject to change – if i have to fork it i will change the URL. I already have a “cool name” in mind.

    I have requested to take over managing this plugin:
    https://wordpress.org/support/topic/request-to-transfer-ownership-of-broken-link-checker/
    If you support this, you can chime in there! Thanks for the vigilance 🙂

    Hi @syntax53

    We’ve just updated the Broken Link Checker plugin to the latest version. Could you test it and let us know if it works out the box, without having to replace the function @moody1337 posted?

    Thanks!
    Nemanja

    @kouteki

    By latest version do you mean 1.11.8?
    If so I’m sorry to say that the messages @syntax53 posted are still present.

    Without the changes @moody1337 posted there is no chance that this messages will not being thrown. Take a look at https://www.php.net/manual/en/function.create-function.php. What could this being misunderstood: “Warning This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged.”?

    Also the code @moody1337 is the same as before but now it is using the native anonymous function which is recommended @see https://www.php.net/manual/en/functions.anonymous.php.

    So I would recommend to eliminate all create_function calls within your plugin code base and replace them by native anymous function because WordPress will only run without any notices with PHP > 5.5 and not every user of you plugin has the oppprtunity to adjust the php version. In most cases the server works with the latest stable release of php and therefore compatibility with PHP 7 should be mandantory.

    • This reply was modified 7 months, 2 weeks ago by mumbomedia.
    • This reply was modified 7 months, 2 weeks ago by mumbomedia.
Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘PHP 7.2 Issue with create_function’ is closed to new replies.