how to urlencode a string?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to urlencode a string?
# 1  
Old 03-26-2009
Question how to urlencode a string?

Hi there,
I'm desperatly trying to encode a url in a shell script.

Code:
localhost:~# cat sendalert.sh
#!/bin/bash
url="http://www.xxxxx.fr/addalert.php?login=xxx&pass=xxx&msg="
url+=$(php -r "echo rawurlencode('$1');")
echo $url
# wget -O- "$url"
localhost:~# ./sendalert.sh "hello world"
http://www.xxxxx.fr/addalert.php?login=xxx&pass=xxx&msg=hello%20world
localhost:~# ./sendalert.sh "that's cool"
http://www.xxxxx.fr/addalert.php?login=xxx&pass=xxx&msg= Parse error: syntax error, unexpected T_STRING in Command line code on line 1

What can I do to work with single quotes?

Thanks for your help
Santiago
# 2  
Old 03-26-2009
Seems to be working.
Code:
#!/bin/bash

msg=$1

echo $msg

msg=$(echo $msg | awk '{gsub("\x27", "\\\x27");print}' )

echo $msg

url="http://www.xxxxx.fr/addalert.php?login=xxx&pass=xxx&msg="
url+=$(php -r  "echo rawurlencode('$msg');")

echo $url

# decoding
echo $(php -r  "echo rawurldecode(rawurlencode('$msg'));")


Similarly you can process escaping other non-alphanum chars.

Last edited by lamp; 03-26-2009 at 10:04 PM..
# 3  
Old 03-27-2009
Thanks lamp,
Actually, I came up with another solution very late at night.
It works the same way that yours but using sed.
Code:
localhost:~# cat sendalert.sh
#!/bin/bash
url="http://www.xxxxx.fr/addalert.php?login=xxx&pass=xxx&msg="
url+=$(php -r "echo rawurlencode('$(sed "s/'/\\\\'/g" <<< "$1")');")
wget -O- "$url"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to urlencode curl messages?

i have script got error when curl message . i think have some problem with character "space" or other because when i tried skip space , script running normal. this is my script : #!/bin/env bash hostname="$(hostname)" now="$(date +'%d%h%y_%H.%M.%S')" while IFS= read -r line; do... (2 Replies)
Discussion started by: fajar_3t3
2 Replies

2. UNIX for Beginners Questions & Answers

Search a string and display its location on the entire string and make a text file

I want to search a small string in a large string and find the locations of the string. For this I used grep "string" -ob <file name where the large string is stored>. Now this gives me the locations of that string. Now how do I store these locations in a text file. Please use CODE tags as... (7 Replies)
Discussion started by: ANKIT ROY
7 Replies

3. Shell Programming and Scripting

awk string comparison unterminated quoted string andrule of thumb

I have the logic below to look up for matches within the columns between the two files with awk. In the if statement is where the string comparison is attempted with == The issue seems to be with the operands, as 1. when " '${SECTOR}' " -- double quote followed by single quote -- awk matches... (1 Reply)
Discussion started by: deadyetagain
1 Replies

4. Shell Programming and Scripting

Insert String every n lines, resetting line counter at desired string

I need to read a text file and insert a string every n lines, but also have the line counter restart when I come across a header string. Line repeating working every 3 lines using code: sed '0~3 s/$/\nINSERT/g' < INPUT/PATH/FILE_NAME.txt > OUTPUT/PATH/FILE_NAME.txt I cannot seem to find... (1 Reply)
Discussion started by: Skonectthedots
1 Replies

5. Shell Programming and Scripting

Remove lines between the start string and end string including start and end string Python

Hi, I am trying to remove lines once a string is found till another string is found including the start string and end string. I want to basically grab all the lines starting with color (closing bracket). PS: The line after the closing bracket for color could be anything (currently 'more').... (1 Reply)
Discussion started by: Dabheeruz
1 Replies

6. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

7. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

8. Shell Programming and Scripting

to extract string from main string and string comparison

continuing from my previous post, whose link is given below as a reference https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569 consider there is create table commands in a file for eg: CREATE TABLE `Blahblahblah` ( `id` int(11) NOT NULL... (2 Replies)
Discussion started by: vivek d r
2 Replies

9. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

10. Shell Programming and Scripting

search string in a file and retrieve 10 lines including string line

Hi Guys, I am trying to write a perl script to search a string "Name" in the file "FILE" and also want to create a new file and push the searched string Name line along with 10 lines following the same. can anyone of you please let me know how to go about it ? (8 Replies)
Discussion started by: sukrish
8 Replies
Login or Register to Ask a Question