Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260

    dividere in una stringa in due parti...

    salve,

    Mi chiedevo se in php esiste una funzione che divide una stringa in due parti e successivamente le assegni a due variabili diverse, esempio:

    $stringa= "2010"

    ...funzione che divide la stringa ogni 2 caratteri...
    quindi in questo caso ci sarebbero due stringhe "20" e "10"

    -La stringa "20" deve essere assegnata alla variabile "$str1";
    -La stringa "10" deve essere assegnata alla variabile "$tr2".

    Come posso fare? :master:

    Grazie Mille

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    str_split()

    Codice PHP:
    $stringa "2010";

    $str str_split($stringa2);
    print_r($str);

    /*
    Array
    (
        [0] => 20
        [1] => 10
    )
    */ 

  3. #3
    Potresti fare in tal modo:

    1. $lung_stringa = strlen($stringa);
    2. $meta_stringa = floor($lung_stringa/2);

    3. $str1 = substr($stringa, 0, $meta_stringa-1);
    4. $str2 = substr($stringa, $meta_stringa);


    In pratica per prima cosa con l'istruzione 1 prendo la lunghezza della stringa.
    Con la seconda istruzione considero la metà della lunghezza della stringa, valore arrotondato per difetto. Se poi lo vuoi arrotondare per eccesso allora al post di floor puoi usare ceil.
    Questo perché tu hai fatto l'esempio con stringa avente 4 caratteri. Ma se ne contiene 9? In tal caso io metto in $str1 i primi 4 caratteri (vedi istr. 3) e in $str2 i restanti 5 (istr. $str2)

    Ciao.

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    $stringa "2010";
    $str str_split($stringaceil(strlen($stringa)/2));
    print_r($str); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    260
    Grazie mille ragazzi, siete sempre i migliori

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    1,471
    Originariamente inviato da Il_Drugo
    Codice PHP:
    $stringa "2010";
    $str str_split($stringaceil(strlen($stringa)/2));
    print_r($str); 
    Si potrebbe utilizzare lo stesso metodo, invece che per una stringa, per il campo textarea?
    mi spiego:ho infatti un campo textarea veramente molto lungo, con a volte + di 10k caratteri, che mi da frequenti problemi con il server (errori 404 ecc.)

    dalla pagina di inserimento.php
    Codice PHP:
    <textarea name="testo"></textarea
    a quella di verifica.php, posso utilizzare lo stesso codice visto sopra? può dare giovamento? opp. meglio altri metodi?
    $str = str_split($stringa, ceil(strlen($stringa)/3));

    grazie per le vs. risposte

  7. #7
    Perché ti da errore 404? Per caso non ce la fa con la memoria?
    Si, puoi usare quelle istruzioni su testo, anche perché è di tipo stringa, però non risolvi molto anche perché la "suddivisione a metà" della stringa non ti fa diminuire la memoria che usi, anzi la aumenti perché

    1) la somma delle 2 stringhe è sempre uguale alla stringa originaria;
    2) ora hai oltre la stringa originaria, un'altra variabile che è un array con 2 elementi contenenti ciascuno metà "testo".

    Se il problema è la memoria, vai in php.ini e la aumenti settando memory_limit.

    Ciao.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    1,471
    Originariamente inviato da gianf_tarantino
    Perché ti da errore 404? Per caso non ce la fa con la memoria?
    Si, puoi usare quelle istruzioni su testo, anche perché è di tipo stringa, però non risolvi molto anche perché la "suddivisione a metà" della stringa non ti fa diminuire la memoria che usi, anzi la aumenti perché

    1) la somma delle 2 stringhe è sempre uguale alla stringa originaria;
    2) ora hai oltre la stringa originaria, un'altra variabile che è un array con 2 elementi contenenti ciascuno metà "testo".

    Se il problema è la memoria, vai in php.ini e la aumenti settando memory_limit.

    Ciao.
    ti ringrazio tantissimo per la pronta risposta. Putroppo sono in hosting, per cui nn posso modificare php.ini. Naturalmente sono errori che ho sul server, nn in locale. E si presentano ciclicamente. Il provider mi ha riferito dal canto suo, che hanno un limite di caratteri max.

    Per cui volevo sapere se vi era un metodo per dividere il campo testo in due/tre variabili differenti, in modo da ovviare questo problema.

  9. #9
    Allora il problema sta in questa direttiva:

    ; Maximum size of POST data that PHP will accept.
    post_max_size = 4M

    Cioé hanno messo un limite alla quantità TOTALE di dati che puoi inviare via POST. Il problema, quindi, non è nel textarea ma è nella quantità totale di dati che tu invii.

    Inoltre possono aver impostato anche la direttiva

    memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)

    In tal caso devi provare a vedere se con la direttiva ini_set puoi modificare tali valori.
    Da manuale:

    ini_set -- Imposta le opzioni di configurazione

    ini_set ( string varname, string newvalue )

    E' importante sottolineare che "Le opzioni di configurazione manterranno il nuovo valore durante l'esecuzione dello script, e saranno ripristinate al termine dello stesso."

    Cioé se metti ini_set("post_max_size", "8M");

    in una pagina .php al termine di tale pagina, il valore post_max_size ritornerà a quello originale, cioé 4M quindi se ti serve 8M anche in un'altra pagina .php in questa devi nuovamente mettere ini_set.........

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    1,471
    si, rispetto a ieri, ecco la riposta del provider:
    l'errore segnalato veniva generato dal controllo eseguito da mod_security sui campi post inviati dal modulo.
    mi hanno consigliato invece di dividere la var. testo del textarea in tre parti.

    volevo chiedere una cosa, posto le seguenti condizioni:
    - inserimento.php, ho il textarea testo
    - controllo.php, ho la var. $testo
    - posso dividere la var. $testo solo nel file controllo.php, nn prima.

    Se l'errore 404 mi viende dato in controllo.php, allora le possibile modifiche in questo file sono già tardive?

    ti ringrazio tantissimo gianf_tarantino per la tua risposta veramente competente. Ho capito che devo inserire il seguente comando alla fine di entrambi i file.
    Codice PHP:
    ini_set("post_max_size""8M"); 
    Questo riesce a superare il controllo mod_security?
    grazie ancora tantissimo per l'interessamento.

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.