Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122

    Funzione preg_match_all per PHP < 5.2.2

    Ciao,
    utilizzo un plugin per Joomla che utilizza ad un certo punto del codice la funzione preg_match_all

    In particolare il codice è il seguente :

    codice:
    $have_images = preg_match_all("|<[\s\v]*img[\s\v][^>]*>|Ui", $plg_entrytext, $plg_matches, PREG_PATTERN_ORDER) > 0;
    Il problema sta (penso) che il sito ha una versione di PHP 5.2.13 dal manuale PHP ho trovato queste indicazioni :

    5.2.2 Named subpatterns now accept the syntax (?<name>) and (?'name') as well as (?P<name>). Previous versions accepted only (?P<name>).

    Ora (visto che non sono esperto in PHP) mi chiedevo come modificare l'istruzione sopra affinchè sia compatibile con la versione precedente alla 5.2.2 ?

    Grazie.

  2. #2
    I named subpatterns non c'entrano niente, quel pattern mi sembra corretto indipendentemente dalla versione. Che errori hai?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    122
    Ciao,
    praticamente la funzione sembra vada in errore (ho provato a mettere subito dopo la funzione un Echo ma non viene visualizzato nulla) , e la pagina viene prodotta senza il layout (le due colonne laterali, il top , il template).

    Puoi vedere il risultato a questo link : http://razzetti.artera.org

    quando sei nella home page se clicchi nel box Vendite--> Residenziali vedi il risultato.

    Ti posto anche il pezzo di codice che ho individuato fare andare male l'applicazione :



    Ho provato a commentare la funzione, e impostare il campo $have_images = False.

    Così mi viene fuori correttamente la pagina ( se vuoi poi ti faccio la modifica e vedi il risultato ottenuto), ma non viene visualizzata l'immagine (giustamente visto che passa dalla via di non trovato e da come default un'immagine vuota).
    Codice PHP:
    $plg_entrytext $article->text;
    //echo $article->sectionid.' '.$article->catid.'$$$
    ';
    $have_images = preg_match_all("|<[\s\v]*img[\s\v][^>]*>|Ui", $plg_entrytext, $plg_matches, PREG_PATTERN_ORDER) > 0;
    //$have_images = false;
    if (!$have_images && $fp_used_default_image && in_array($view[0],$viewtype)){         $fp_default_img = '
    [img]'.$fp_default_image.'[/img]';
    $plg_entrytext .= $fp_default_img;
    $plg_matches[0][] = $fp_default_img;
    $have_images = TRUE;
    //$plg_matches[0][0] = $fp_default_img;

    if ($have_images)         {             $imagesxxx = 0;
                 //if($ar_remove_link && $view[0] == '
    a') $plg_entrytext = preg_replace('@<(.*?)>(.*?)<\\/a>@s', '$2', $plg_entrytext);
    $this->remove_linked_image($ar_remove_link && $view[0] == '
    a', $excluded_images,$plg_entrytext);
     foreach ($plg_matches[0] as $plg_match)            { 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.