Caratteri jolly in php

Sark

Nuovo Utente
9 Set 2007
6
0
0
scusate sono niubbi in php, ho cercato qui nel forum ma la mia domanda forse è troppo banale, spero possiate aiutarmi.

ho un file php che contiene la seguente IF:

Codice:
if ((selfURL() == "http://www.pippo.it/?p=1")) {
  echo "ciao";
}

in questo modo se la url che ho aperto nel browser è uguale a: http://www.pippo.it/?p=1

allora compare la scritta ciao.

è possibile usare al posto dell'1 un carattere jolly?

io vorrei applicare la IF a tutte le pagine che cominciano con http://www.pippo.it/?p= e che finiscono con 1,2,3...ecc...

per cui immagino una istruzione del tipo http://www.pippo.it/?p=*

scusate la domanda ma come ho detto non so fare in php.
grazie dell'aiuto.
ciao
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Prova tu stesso:
PHP:
$url= selfURL();
if (($url == "http://www.pippo.it/?p=*")) {
  echo "ciao";
}
 

Sark

Nuovo Utente
9 Set 2007
6
0
0
Ciao Eliox,
ho gia provato ad usare l'* e non funziona.

il problema non è associare il risultato della funzione selfURL() ad una variabile o meno.

il fatto è che non posso usare l'* come carattere jolly
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
La variabile serviva solo per l'esempio; probabilmente ci sono soluzioni più semplici ma al momento ho pensato di fare così:
PHP:
<?php
//ricaviamo la variabile dall'url
$pos = explode("=", selfURL());

//controlliamo se la variabile e numerica
if(is_numeric($pos[1]))
{
echo 'ciao';
}
?>
Potrebbe andare?
 

Sark

Nuovo Utente
9 Set 2007
6
0
0
ciao eliox, le tue info mi sono utili. provo a descriverti meglio cosa vorrei fare, magari con i tuoi consigli combino qualcosa di buono.

in pratica io vorrei scrivere del codice html (molto banale, si tratta di un menu di navigazione per il mio sito).

diciamo che il codice ha 5 porzioni di html al suo interno e io ho 5 pagine in tutto nel sito

questo codice vorrei importarlo in ognuna delle pagine del sito e vorrei che, a seconda della pagina aperta dal visitatore, apparisse il pezzo di codice corrispondente a quella pagina.

siccome una delle 5 pagine (il blog) usa non solo la index.php, ma anche suoi derivati come index.php?=1, index.php?=2, index.php?=abc ....ecc...vorrei appunto trovare il modo di "dire" al codice: "ignora quello che hai dopo il ?, in quanto se trovi index.php? allora sei sempre nella pagina del blog."

ho pensato quindi di usare dei caratteri jolly ma non ho avuto molta fortuna. al momento ho risolto con la funzione substr. in questo modo faccio contare alla funzione tot caratteri partendo dall'inizio e se il risultato è uguale alla variabile X allora gli faccio fare certe cose, altrimenti delle altre.
così funziona, solo che devo impostare piu variabili in quanto se uso il sito in locale la scritta:
http://[B]localhost[/B]/miosito.it/index.php?=1
è piu lunga della scritta
http://[B]www[/B].miosito.it/index.php?=1

spero di aver descritto bene la mia esigenza e che tu possa aiutarmi in qualche modo.

ciao, grazie
 

Sark

Nuovo Utente
9 Set 2007
6
0
0
certo, lo semplifico a 2 pagine, la sezione blog e la sezione contattami
<?php

// stabilisco quale sia la url attualmente visualizzata dall'utente
function selfURL() {
$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
$protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}
function strleft($s1, $s2) {
return substr($s1, 0, strpos($s1, $s2));
}

// assegno la url trovata alla variabile
$ws_current_url= selfURL();

// calcolo X numero di caratteri a partire dall'inizio della URL e assegno un valore di 38 caratteri per la url locale e 30 per quella online, es: http://www.sito.it è uguale a 18 caratteri
$wslocale_localhost = substr($ws_current_url, 0, 36);
$wsremoto = substr($ws_current_url, 0, 30);

// eseguo la IF, se la stringa di tot caratteri è uguale alla url visualizzata dall'utente allora eseguo il codice
if (($wslocale_localhost == "http://localhost/uniposca2.it/blog/?") OR ($wsremoto == "http://www/uniposca2.it/blog/?")) {
echo"<div id=\"navigation\">";
echo"<ul>";
echo"<li><a href=\"$wspath/home/\">Home</a></li>";
echo"<li><a href=\"#\">Guestbook</a></li>";
echo"<li class=\"selected\"><a href=\"#\">Blog</a></li>";
echo"<li><a href=\"$wspath/contattami/\">Contattami</a></li>";
echo"<li><a href=\"#\">Feeds</a></li>";
echo"<li><a href=\"#\">?</a></li>";
echo"<li id=\"signout\"><a href=\"#\">Registrati</a></li>";
echo"</ul>";
echo"</div>";
}
//per la pagina contattami non ho problema perchè uso sempre il file index.php e posso compararlo direttamente. ho solo fatto 2 ipotesi, una in cui l'utente sia nella url standard www.sito.it/contattami/ e uno con la url completa www.sito.it/contattami/index.php
elseif (($ws_current_url == $wspath."/contattami/") OR ($ws_current_url == $wspath."/contattami/index.php")) {
echo"<div id=\"navigation\">";
echo"<ul>";
echo"<li><a href=\"$wspath/home/\">Home</a></li>";
echo"<li><a href=\"#\">Guestbook</a></li>";
echo"<li><a href=\"#\">Blog</a></li>";
echo"<li class=\"selected\"><a href=\"$wspath/contattami/\">Contattami</a></li>";
echo"<li><a href=\"#\">Feeds</a></li>";
echo"<li><a href=\"#\">?</a></li>";
echo"<li id=\"signout\"><a href=\"#\">Registrati</a></li>";
echo"</ul>";
echo"</div>";
}

?>

come vedi se apro la pagina del blog allora c'è il selected nella riga che righiama il tasto blog altrimenti se apro la pagina contattami allora il select è nel tasto contattami

ciao
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Perchè non effettui un semplice controllo sul valore associato a selfURL() con strpos,
se cè "http://www.pippo.it/?p=" va bene, diversamente lo escludi.

Poi puoi effettuare un controllo sulla varibile finale della query string col codice che ti ho proposto.
 

Sark

Nuovo Utente
9 Set 2007
6
0
0
non so come applicare la funzione al mio caso, puoi farmi un esempio del codice che dovrei scrivere?

considera che ho i 2 casi, uno del sito in locale e uno del sito remoto, per cui la lunghezza della stringa URL non ha la stessa lunghezza.

http://localhost/pippo.it/?=

http://www.pippo.it/?=

ciao, grazie

PS = non c'è una funzione che restituisce un valore TRUE/FALSE (se trova la corrispondenza) invece che la posizione della prima occorrenza?
 

Sark

Nuovo Utente
9 Set 2007
6
0
0
eliox ho fatto questa prova:

PHP:
$ws_current_url= selfURL(); 

//se trovo la scritta "blog/?" all'interno della url eseguo il codice
if (stristr($ws_current_url, 'blog/?') !== FALSE) { 
  echo "evidenzia il tasto BLOG";
}

//se trovo la scritta "contattami" all'interno della url eseguo il codice
elseif (stristr($ws_current_url, 'contattami') !== FALSE) {
  echo "evidenzia il tasto CONTATTAMI";
}

mi sembra che funzioni per il mio caso. Ho semplificato il codice a poche righe.

cosa ne dici?
ciao
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Direi che si potrebbe semplificare ulteriormente:

PHP:
<?php
$ws_current_url= selfURL();
$urls= array('blog', 'contattami');
foreach ($urls as $url)
{
  if (stristr($ws_current_url, $url) !== FALSE) {
  echo "evidenzia il tasto " . strtoupper($url);
  }
}  
?>

Così dovrai solo popolare l'array e non ti servirà aggiungere un if - else per ogni caso.
 
Discussioni simili
Autore Titolo Forum Risposte Data
N [risolto] array_key_exists e caratteri Jolly PHP 2
Monital Caratteri jolly ed array PHP 4
F Caratteri invisibili XML 4
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
P Codifica caratteri speciali mysql php PHP 0
Z Caratteri speciali irriconoscibili PHP 1
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
A eliminare caratteri speciali mettendo uno spazio PHP 0
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 3
M [PHP] Troncare caratteri PHP 1
A [PHP] caratteri speciali PHP 14
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
C Caratteri accentati php PHP 2
Z [Java] Caratteri distorti e spaziature errate nelle stampe di componenti swing Java 0
S [PHP] visualizzazioe caratteri strani PHP 13
F [Joomla] Caratteri speciali si vedono tutti sbagliati su Safari Joomla 2
F [Javascript] Verificare la presenza di caratteri speciali in una password Javascript 3
borgo italia [PHP] ricerca caratteri accentati PHP 4
trattorino [Javascript] FAR sparire campo dopo top caratteri Javascript 2
D [Javascript] aggiornare numero caratteri se campo già popolato Javascript 5
M [PHP] Impedire di digitare determinati caratteri nell’input (controllo in tempo reale) PHP 4
fabryx [PHP]RISOLTO: Parsing xml nodi con caratteri speciali PHP 1
giancadeejay [PHP] Controllo inserimento tot caratteri PHP 5
giancadeejay [PHP] Controllo su quantita' di caratteri inseriti, in colonna db PHP 5
Shyson [WordPress] Mettere un limite a lunghezza caratteri WordPress 11
B [MySQL] CONTROLLARE I PRIMI CARATTERI DI UN CAMPO VARCHAR MySQL 8
G [PHP] Sostituzione caratteri PHP 2
N [Javascript] Effettuare spaziatura tra caratteri Javascript 0
P verifica caratteri per email e password PHP 17
C Problemi con i caratteri HTML e CSS 0
M Caratteri HTML salvati nella tabella PHP 4
Shyson mysql int (11) quanti caratteri può ricevere? PHP 1
S stringhe con caratteri speciali PHP 3
M Stringhe con caratteri non codificati (es. �) PHP 1
MarcoGrazia [regex] validare un textbox con solo caratteri alfabetici. Javascript 6
F sql e record con caratteri speciali e spazi Classic ASP 1
A visualizzare caratteri speciali Database 1
W Controllo caratteri speciali PHP 2
J Xml errore su caratteri speciali e accenti XML 0
L Caratteri speciali e apici PHP 2
asevenx Correggere automaticamente caratteri strani (rumbo con punti interrogativi) HTML e CSS 9
G Invio caratteri speciali tramite jquery/ajax Javascript 1
G Invio caratteri speciali tramite jquery/ajax Ajax 1
L Aiuto contaggio caratteri e loop. Javascript 4
I contatore caratteri textarea sbagliato Javascript 1

Discussioni simili