is Quoted?

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
mbrodin



Medlem i: 1574 dagar
Från: Halmstad
Status: Offline



#737876
Inlägg Skrivet: 2014-09-30 12:58      Ämne: is Quoted? Citera

Hej! Skrev för snart 2 år sedan ett skript utan preg_match för att kolla upp om en sträng är citerad, alltså med enkelsnuttar eller dubbelsnuttar, och tänkte dela med mig av den.

PHP:
1:
    /*
2:
   * String quote checker.
3:
   * Do checks to see if a string is quoted with either " or ', or the character the user sets.
4:
   *
5:
   * @param string $str String to be checked.
6:
   * @param mixed $quote A character specified variable. If nothing isset, it will have boolean value as false. 
7:
   */
8:
   function is_quoted($str$quote=false){
9:
 
10:
      if(is_numeric($str) || !is_string($str) || empty($str)){
11:
      return false;
12:
      }
13:
 
14:
      if(!$quote){
15:
      $quote = ('"' === $str{0} || "'" === $str{0} ? $str{0} : false);
16:
      }
17:
 
18:
      if(!$quote && !(=== $quote)){
19:
      return false;
20:
      }
21:
 
22:
   $text substr($str1, -1);
23:
 
24:
      if(!empty($text)){
25:
      return true;
26:
      }
27:
 
28:
   return false;
29:
   



Kolla upp utan ett andra argument, och då kollar den upp både ' och ".
PHP:
1:
 echo is_quoted('not_quoted'); //  returns false, no quote at all 

PHP:
1:
 echo is_quoted('"not_quoted"'); //  returns true, both the first and last char is quoted 

PHP:
1:
 echo is_quoted('"not_quoted'); //  returns false, only first char is a quote 

PHP:
1:
 echo is_quoted("'not_quoted'"); //  returns true, even here both beginning and end is quote 


Kolla upp med ett andra argument, och då kollar den upp just det tecknet som finns där och inte både " och '. Vi sätter dit dubbelfnutt.
PHP:
1:
 echo is_quoted('not_quoted''"'); //  returns false, no quote at all 

PHP:
1:
 echo is_quoted('"not_quoted"''"'); //  returns true, both the first and last char is quoted and is the char as in the second argument. 

PHP:
1:
 echo is_quoted('"not_quoted''"'); //  returns false, only first char is a quote 

PHP:
1:
 echo is_quoted("'not_quoted'"'"'); //  returns false, the first and last char don't match the seconds argument. 


Senast ändrad av mbrodin den 2014-09-30 19:19, ändrad totalt 3 gånger
 

_________________
Min blogg Smile Mitt gamla konto Mikael Brodin. Smile
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
EmilV
Ex-Moderator



Medlem i: 5865 dagar
Från: Lilla Edet
Status: Offline



#737877
Inlägg Skrivet: 2014-09-30 13:41      Ämne: Citera

Nagra buggar:

* Ger fel for tomma strangar (PHP Notice: Uninitialized string offset: 0)
* Strangarna " och ' ger true (alltsa nar de innehaller endast ett tecken)
* Alla strangar som kan tolkas som tal ger true

Exempel:

PHP:
1:
 
2:
is_quoted('');
3:
/*
4:
PHP Notice:  Uninitialized string offset: 0 in /home/emil/test.php on line 11
5:
PHP Notice:  Uninitialized string offset: 0 in /home/emil/test.php on line 11
6:
*/
7:
 
8:
is_quoted('"'); // true
9:
 
10:
is_quoted('-.5'); // true 
 

_________________
Tänk!

EmilVikström.se | Bloglovin.com
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
mbrodin



Medlem i: 1574 dagar
Från: Halmstad
Status: Offline



#737878
Inlägg Skrivet: 2014-09-30 14:20      Ämne: Citera

[quote="EmilV"] Nagra buggar:

* Ger fel for tomma strangar (PHP Notice: Uninitialized string offset: 0)
* Strangarna " och ' ger true (alltsa nar de innehaller endast ett tecken)
* Alla strangar som kan tolkas som tal ger true
[/php]Tack EmilV! Jag ska ta åt mig dessa fel. Jag tar tacksamt emot fler buggar.
 

_________________
Min blogg Smile Mitt gamla konto Mikael Brodin. Smile
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic