|
||||
|
|
#1 (permalink) |
|
Nuovo della community ![]()
38 Messaggi
![]() |
Funzione ereg() deprecata
ciao a tutti, premetto la mia poca dimistichezza con questo linguaggio. Ho un piccolo problema con una funzione che è presente su una mod per game
codice:
for ($i=0; $i<$player_cnt; $i++)
{
$i_rcon_string = $output[$i];
if ($i_rcon_string != '')
{
$pat[0] = "/^\s+/";
$pat[1] = "/\s{2,}/";
$pat[2] = "/\s+\$/";
$rep[0] = "";
$rep[1] = " ";
$rep[2] = "";
$i_rcon_string = preg_replace($pat,$rep,$i_rcon_string);
unset($tmp2);
if (ereg("[[:space:]][0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", $i_rcon_string, $tmp2))
{
$i_ip = substr($tmp2[0],1);
} else $i_ip = '';
l'errore preciso che mi da sul browser è questo: codice:
Deprecated: Function ereg() is deprecated in C:\Program Files\EasyPHP5.3.0\www\php_rcon\rules_checker\rcon-rules.php on line 215 grazie a tutti per la disponibilità. ciao |
|
|
|
|
|
#2 (permalink) |
|
Moderatore Globale ![]() ![]()
4,545 Messaggi
![]() ![]() ![]() ![]() |
Ciao Fabio_,
da PHP 5.3.0, la funzione ereg() è deprecata, ciò significa che non viene più inclusa e dunque utilizzata da PHP. Dovresti sostituire il tuo codice con: Codice PHP:
A presto, Giuseppe
__________________
- Il mio Blog ;- Leggi il Regolamento Ufficiale della comunità; - Se le risposte di un utente ti hanno aiutato, usa il pulsante Commenta Intervento e accresci la sua reputazione; - Riguardo GNU/Linux e Free Software; Entra nel gruppo GNU/Linux; - PHP 5: Previeni gli attacchi SPAM verso le tue applicazioni web, Check spam.
|
|
|
|
|
|
#3 (permalink) |
|
Nuovo della community ![]()
38 Messaggi
![]() |
grazie per la tua risposta, ho fatto la sostituzione che mi hai detto ma non và, d aun altro errore
codice:
Warning: preg_match() [function.preg-match]: Unknown modifier '[' in C:\Program Files\EasyPHP5.3.0\www\php_rcon\rules_checker\rcon-rules.php on line 215 codice:
unset($tmp2);
if (preg_match("[[:space:]][0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", $i_rcon_string, $tmp2))
{
$i_ip = substr($tmp2[0],1);
} else $i_ip = '';
|
|
|
|
|
|
#4 (permalink) |
|
Moderatore Globale ![]() ![]()
2,935 Messaggi
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ciao,
Le funzioni ereg() e preg_replace() sono similli ma non identiche (ad esempio ereg non modifica l'array se non trova alcun match, mentre la preg_replace lo sostituisce con un array vuoto)... ad ogni modo incapsula la tua regular expression tra due caratteri '/' che agiscono da delimitatore dell'espressione (mentre la ereg non li vuole, la preg_match si... come puoi vedere dalla prima parte del tuo codice, in cui la preg_replace viene effettivamente usata per ripulire l'input prima di passarlo alla ereg). Accanto ai delimitatori / puoi poi aggiungere vari caratteri che indicano come trattare l'espressione regolare... ma ti rimando per una trattazione approfondita a qualche manuale o guida esaustiva (le regular expression sono un mondo piuttosto vasto). Ciaociao ![]()
__________________
![]() Venite a farmi un saluto su http://www.bottomap.com/ - Come porre domande in modo intelligente - Hai mai dato un'occhiata al Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo... - Se un utente ti è stato d'aiuto usa il pulsante Commenta Intervento per aumentare la sua reputazione! "La violenza è l'ultimo rifugio degli incapaci" - I.Asimov (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato) Ultima modifica di bottomap : 05-02-2010 a 21:32. |
|
|
|
|
|
#5 (permalink) |
|
Nuovo della community ![]()
38 Messaggi
![]() |
grazie mille, ho risolto ocn il vostri consigli, ho fatto in questa maniera
codice:
if (preg_match("/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $i_rcon_string, $tmp2))
![]() la riga di codice incriminata è questa: codice:
// CLI support
if ($_SERVER['argv'])
{
for ($i=1;$i<count($_SERVER['argv']);$i++)
{
$it = split("=",$_SERVER['argv'][$i]);
$_GET[$it[0]] = $it[1];
}
chdir(dirname($_SERVER['argv'][0]));
$_SERVER['SERVER_ADDR'] = '127.0.0.1';
}
codice:
Notice: Undefined index: argv in C:\Program Files\EasyPHP5.3.0\www\php_rcon\rules_checker\rcon-rules.php on line 80 sto impazzendo ![]() grazie a tutti |
|
|
|
|
|
#6 (permalink) |
|
Moderatore Globale ![]() ![]()
2,935 Messaggi
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ciao,
L'errore ti indica che nell'array (autoglobale) $_SERVER non esiste alcun elemento di nome 'argv'... il ché è la norma per uno script php che viene eseguito in una pagina web. Probabilmente non sai (in effetti l'utilità è relativamente limitata) che l'interprete php può essere invocato tranquillamente da riga di comando, che accetta parametri come qualsiasi altro eseguibile e che produce un output (a schermo invece che in una pagina web). Normalmente il web server invoca l'interprete passandogli semplicemente il nome dello script .php da eseguire e si occupa di dirigerne l'output sulla pagina che viene restituita all'utente. Nel caso lo script venga eseguito da riga di comando è possibile passargli dei parametri (un po' come le richeste in GET/POST). Questi parametri vanno a finire, sotto forma di array, in $_SERVER['argv'] (in $_SERVER['argc'] c'è il numero di tali elementi). Il commento "CLI support" (CLI sta proprio per Command Line Interface) indica chiaramente che lo spezzone in questione è utilizzato se lo script viene eseguito da linea di comando. Se vuoi evitare la warning, puoi usare la funzione isset() su $_SERVER['argv'] per determinare se esiste o meno prima di accedervi (analogamente puoi usare anche la array_key_exist - meno diffusa - che controlla se una determinata chiave esiste in un determinato array). Ciaociao ![]()
__________________
![]() Venite a farmi un saluto su http://www.bottomap.com/ - Come porre domande in modo intelligente - Hai mai dato un'occhiata al Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo... - Se un utente ti è stato d'aiuto usa il pulsante Commenta Intervento per aumentare la sua reputazione! "La violenza è l'ultimo rifugio degli incapaci" - I.Asimov (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato) |
|
|
|
|
|
#7 (permalink) | |
|
Nuovo della community ![]()
1 Messaggi
![]() |
funzione ereg() deprecata
scusate se riapro questa discussione (tra l'altro sono nuovo del forum e spero di non violare nessuna regola).
Il mio problema è questo, sto facendo un sito in joomla, e sto creando un menu con immagini, con l'effetto hover. Questo menu si crea facilmente con il modulo image menu, ma purtroppo questo usa la funzione ereg() che come detto prima è deprecata, come potrei modificarlo? questa è la funzione del modulo originario: Quote:
undefined variable menu mi potreste dare un aiuto per favore???? grazie mille!!!!! ![]() |
|
|
|
|
|
|
#8 (permalink) |
|
Moderatore Globale ![]() ![]()
2,935 Messaggi
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ciao,
Non la puoi sostituire direttamente con gli stessi parametri, visto che il funzionamento è leggermente differente. In ogni caso il "pattern" che passi come espressione regolare dev'essere un'espressione regolare standard, comprensiva dei delimitatori di inizio e fine... La funzione preg_match inoltre ritorna il numero di match che riesce ad effettuare, mentre la ereg ritorna la lunghezza della stringa matchata o FALSE in caso non trovi alcun match... il test con la if quindi non è corretto se usi la preg_match. Ti rimando ad ogni modo alle pagine apposite (che comprendono parecchi esempi di utilizzo): La ereg: PHP: ereg - Manual La preg_match: PHP: preg_match - Manual Forse inoltre è il caso di impratichirsi un poco con le regular expression, visto che la preg_match si basa su quelle... in rete trovi parecchio materiale. Se semplicemente vuoi controllare se in $a è presente la sottostringa "menu_image" forse più semplicemente puoi sfruttare la strpos(), la substr() o la strstr(). Ciaociao ![]()
__________________
![]() Venite a farmi un saluto su http://www.bottomap.com/ - Come porre domande in modo intelligente - Hai mai dato un'occhiata al Regolamento del Forum? Se la risposta è no, sarebbe proprio l'ora di farlo... - Se un utente ti è stato d'aiuto usa il pulsante Commenta Intervento per aumentare la sua reputazione! "La violenza è l'ultimo rifugio degli incapaci" - I.Asimov (per chiunque se lo fosse mai chiesto, il nick Bottomap è volutamente sgrammaticato) |
|
|
|
![]() |
«
formulario in PHP
|
Chat php
»
| Strumenti della discussione | |
| Modalità di visualizzazione | |
|
|
Tutti gli orari sono GMT +2. Attualmente sono le 09:58.









;







Modalità lineare

