Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di mgfx
    Registrato dal
    Feb 2008
    Messaggi
    173

    Chi mi sistema questo codice

    Ragazzi io conosco il C e non conosce perfettamente la sintassi del php ma so che ci va vicino, chiedo se qualcun può sistemarmi questo codice
    grazie mille!

    Codice PHP:
    $link $result['link']; 
    $lung strlen(link);
    $trovato=0;
    $k=0;
    for(
    $i=0$i==$lung$i++)
    {
    if(
    $link[$i]== "=")
    $trovato=1;
        
    if(
    $trovato==1)
    $cod[$k];
    $k++;


  2. #2
    Se magari ci dici che cosa vuoi fare con lo script....

  3. #3

  4. #4
    Utente di HTML.it L'avatar di mgfx
    Registrato dal
    Feb 2008
    Messaggi
    173
    solo quello è l'errore?

  5. #5
    Originariamente inviato da rickystra
    for($i=0; $i=$lung; $i++)
    evitiamo di dare consigli ASSOLUTAMENTE casual e primi di fondamento che avrebberò (se non lo hanno già fatto) sbattere questa persona contro un muro per ore ..........

    questo codice non fà altro che impostare all'inizio $i su 0, poi incrementa $i++ ed infine imposta $i su $lung terminando il ciclo

    deve essere == altrimenti fà un'assegnazione e non un confronto...............



    detto questo, mgfx, cosa deve fare questo codice? ci sono sistemi molto più semplici per far questo in php, anche se comunque ancora non capisco a cosa serva

    ad esempio strpos ti permetterebbe di trovare l'= senza ciclare il codice

    codice:
    $start = 0;
    $cod = array();
    while(($start = strpos($result['link'], '=', $start)) !== false)
    {
      $cod[] = $start;
      $start++;
    }
    Non l'ho provato, quindi non so se ci sono errori di sintassi, ma dovrebbe andare. Questo codice non fà altro che effettuare un ciclo while dove viene ricercato, tramite strpos, il carattere = e assegna la posizione trovata a $start. Nel caso che non trovi nulla viene restituito false.

    Essendo php un linguaggio weakened type (perdonatemi il termine) non viene fatta differenza tra 0 e false se si usa un normale confronto con == ma il confronto effettuato === assicura che anche i tipi siano uguali oltre ai valori con la conseguenza che == risulta uguale tra 0 e false mentre === risulta falso perché anche se 0 è false hanno lo stesso valore sono di tipi diversi.

    Una volta trovato il valore lo mette in un array chiamato $cod, che puoi ciclare con un for o più comodamente con un foreach ed infine incrementa $start di 1 carattere per permettergli di cercare il carattere successivo

    se l'strpos dovesse darti errori dicendoti che l'offset è maggiore della lunghezza della stringa metti una @ prima dell'strpos ma dopo l'uguale (ovvero ..... = @strpos(......)..... )

    Detto e fatto questo sul manuale di php, online, se conosci l'inglese, puoi trovare tutte le risposte che ti servono

    http://www.php.net/strpos
    http://www.php.net/for
    http://www.php.net/foreach
    http://www.php.net/array
    http://it.php.net/manual/en/control-...ive-syntax.php
    http://it.php.net/manual/en/language...comparison.php

    spero di esserti stato d'aiuto
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    Utente di HTML.it L'avatar di mgfx
    Registrato dal
    Feb 2008
    Messaggi
    173
    questo è quello che dovrei fare

    mettiamo in una variabile ci sia una un serie di caratteri
    tipo:

    astfvsadg=fdsafhj

    devo copiare in un altra variabile tutti i caratteri dopo l'uguale

    spero di esser stato chiaro grazie ^^

  7. #7
    ho capito, allora molto più semplice

    $valore = substr($stringa, strpos($stringa, '=') + 1);

    PS: se stai provando a leggere un file .ini puoi, più semplicemente, usare le funzioni apposite di php, ovvero parse_ini_file e parse_ini_string

    http://it.php.net/manual/en/function.parse-ini-file.php
    http://it.php.net/manual/en/function...ini-string.php

    PS2: come mai ti serve fare questo lavoro? devi leggere dei file di configurazione? questi file sono generati tramite php? se si puoi usare la serializzazione con serialize e unserialize
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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 © 2026 vBulletin Solutions, Inc. All rights reserved.