php


Creating folders based on posted hashtags PHP


So this is my first time posting a question on this website and as a programmer I'm ashamed I didn't create an account sooner, this website has gotten me through a lot lol, anyways enough about that, I need some help.
I am creating a system where users can post their own little statuses, update their status, share, etc. I need help creating folders for #hashtags based on the hashtag the user has in his posted status.
So an example would be: "Hello world #firstpost #helloworld", the code would have to exclude everything in that sentence except for any and all hashtags, and it would then create the folders for all the hashtags that are in the users post, in this case it's going to create the folders firstpost and helloworld (if they don't already exist).
Can I create the folders using a modified version of this or at least something better/similar/related?
$foldername = $_POST["status_posting"];
mkdir('../hashtag/' . $foldername, 0755);
for ($i = 0; $i < 1; $i++) {
mkdir('../users/' . $foldername, 0755);
}
Thank you for your guys help in advance.
You can use a regular expression to capture the hashtags, then use mkdir() to create the directories. You can use file_exists() to check if a file exists (or not !).
I would use the following expression: #(\S{1,}). This expression looks for a #, then starts capturing any non white-space character (/S), from once to infinite times ({1,}).
<?php
$input = "Hello world #firstpost #helloworld";
preg_match_all("/#(\S{1,})/", $input, $matches);
foreach($matches[1] as $match){
if (!file_exists('../hashtag/' . $match)) {
mkdir('../hashtag/' . $match, 0755, true);
}
}
I'd php explode() the message, check each item if it contains a #, if so mkdir the item's name minus the #. Possibly not the most efficient way to do it.
$foldername = explode(" ", $_POST["status_posting"]);
foreach($foldername as $string){
if(strpos($string, '#') !== FALSE){
//Make dir!
mkdir('../hashtag/' . ltrim($string, "#"), 0755, true);
}
}
The true at the end of mkdir allows for recursive file path creation. For instance, if the hashtag folder has not been created yet, it will create that too.
After doing some research, since "#" can be found without using regex, it's much more efficient to use strpos() and explode(). preg_match() vs strpos() speed is shown below.
no. strings 1 2 3 10 100 1000 10000
strpos() 0.01 ms 0.02 ms 0.04 ms 0.2 ms 0.9 ms 2.6 ms 25.6 ms
preg_match() 0.2 ms 0.2 ms 0.3 ms 0.47 ms 0.95 ms 7.4 ms 72.2 ms
Though you do have to factor in explode() time, the php forum states that explode() should be used when regex power is not required, for reasons we can see above. I would be interested in seeing the two answers code put head to head as it would be quite interesting to know for sure.

Related Links

html text field validation via php
Refresh page with ComboBox without refresh
gettext return wrong language
How to load site resources regardless of parent file's path
SimpleXML namespaced attributes and value is empty?
How to echo two pieces of information
get strtotime of specific time in php
Php date and strtotime [closed]
What's the purpose of this bitwise AND operator?
php do not understand 元 (CNY) symbol to replace
Inserting multiple images in mysql, also inserts multiple rows
Getting fetchAll() error using on Ubuntu
Access denied for user localhost
Laravel WhereIn Query Issue
How do i compare PHP Efficiency between two algorithm?
Deploying web-application on apache2 server

Categories

HOME
ontouchlistener
yii
postgresql-9.4
command-prompt
whmcs
mongoid
hyperledger
ui-automation
firebase-database
sharepoint-online
eddystone
lc3
cqrs
watch-os-3
amazon-emr
sslhandshakeexception
texas-instruments
async-await
google-tasks-api
gmp
pfobject
amazon-mws
weex
quantitative-finance
sipp
dragula
cellular-network
hevc
jackrabbit-oak
sfml
credit-card
epplus
universal
cloudera-manager
xmlunit
winrm
express-session
recovery
text-decorations
gitolite
windows-store
classnotfoundexception
dbcc
virtual-memory
morphline
absolute
dredd
gmaps.js
.when
hmmlearn
allegro
qtextedit
bbc-micro
node-glob
facebook-ios-sdk
vaadin4spring
xcopy
mercurial-extension
ajax4jsf
google-maps-api-2
decidable
nette
ngcordova
embeddedwebserver
flow-js
shoes
html-escape-characters
google-hangouts
microsoft-expression-web
juttle
inequality
communicate
git-reset
indesign-server
unicoins
examine
linkbutton
xalan
daap
jdom
zotonic
opends
uploading
acpi
affinetransform
django-apps
drawimage
chunking
sscli
getimagesize
external-sorting
accumulator
activex-exe
account-management

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile