• Resolved Storyman

    (@storyman)


    After running WP Engine’s plugin, ‘PHP Compatibility Checker’, it reported 2 errors. It could be a false negative, but worth checking out.

    Here is the report:

    90 | ERROR | The use of function split is discouraged from PHP version 5.3 and forbidden from PHP version 7.0; use preg_split instead
    93 | ERROR | The use of function split is discouraged from PHP version 5.3 and forbidden from PHP version 7.0; use preg_split instead
    —-

Viewing 9 replies - 1 through 9 (of 9 total)
  • Tim

    (@timothyabgreen)

    I would be grateful if the plugin author alanft could confirm whether this is an issue or requires an update. Much appreciated as this is a great plugin.

    craft37

    (@craft37)

    FILE: /home/shopion/shopion.ru/www/wp-content/plugins/widget-logic/widget_logic.php
    ————————————————————————————————————-
    FOUND 2 ERRORS AFFECTING 2 LINES
    ————————————————————————————————————-
    90 | ERROR | Function split() is deprecated since PHP 5.3 and removed since PHP 7.0; use preg_split instead
    93 | ERROR | Function split() is deprecated since PHP 5.3 and removed since PHP 7.0; use preg_split instead
    ————————————————————————————————————-

    Hi Everyone,

    If in any case you are looking for plugin alternative which works perfectly with the latest versions feel free to check this plugin of mine : https://www.ads-software.com/plugins/widget-options/ with Display Widget Logic feature included similar to this plugin. Thank you very much and I hope this will be very helpful to all of you.

    Cheers,
    Jeffrey

    David Anderson

    (@davidanderson)

    Reading the code, the split() function is only used in the ‘import’ function. So if you don’t intend to use the import function, then you won’t be affected by its removal from PHP 7.

    David Anderson

    (@davidanderson)

    And, if you do try to use the import function, it will certainly fail.

    This plugin is almost like a staple. Sure hope the update and compatability with PHP 7 comes sooner than later. It would be a shame to see such a stable and reliable plugin become obsolete. It would seem an update should be relatively easy (says the gal who does very little code!). WOnder if it is a backward compatability issue?

    Hello developer? Any chance this can be updated – PLEASE?

    As others have mentioned the split() function has depreciated in PHP 7.

    I’m also noticing an additional concern. I’ve installed the plugin on a PHP 7 test environment, and seeing this error printed repeatedly wp-content/plugins/widget-logic/widget_logic.php(286) : eval()'d code on line 1

    It seems PHP 7 has changed the eval() function to return errors, not booleans.

    As of PHP 7, if there is a parse error in the evaluated code, eval() throws a ParseError exception. Before PHP 7, in this case eval() returned FALSE and execution of the following code continued normally. It is not possible to catch a parse error in eval() using set_error_handler().

    Reference

    On line 286 there is a conditional if(!eval($wl_value), with the way the PHP 7 function works this statement will no longer return True/False, but print errors all over the screen.

    Anyhow, I’m surprised this plugin hasn’t been updated for PHP 7 comparability yet due to it’s popularity. I’d rather work on a fix that would benefit the community than rework my theme to omit using the plugin entirely. If I’m able I’ll follow up with a patched version.

    The eval() function will throw an error code if your widget logic code is not perfect. For instance !is_page('contact') will work as expected, but if you were to forget the quotes and input something like !is_page(contact) it will output an error message to the page, which was not thrown in PHP 5.

    Other than that the only changes necessary for full compatibility are as @storyman stated, on lines 90 & 93.

    Line 90 becomes: $import = perg_split("/\n/",file_get_contents($_FILES['wl-options-import-file']['tmp_name'], false));

    Line 93 becomes: list($key, $value) = preg_split("/\t/",$import_option);

    • This reply was modified 7 years, 11 months ago by ryankozak. Reason: can spell ok
    • This reply was modified 7 years, 11 months ago by ryankozak.
    • This reply was modified 7 years, 11 months ago by ryankozak. Reason: php 7 compatability checker test image

    Alan Trewartha,
    Any plans to bring Widget Logic up to speed with PHP7? Doesn’t seem like it will take much…

    Many thanks!

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘Issues with PHP 7’ is closed to new replies.